Note
运行
docker-compose
时需要在docker-compose.yml
文件的目录下执行。否则找不到compose文件就会输出错误。docker-compose.yml
的文件名不能改变,否则需要额外指定-f
文件运行。(与Dockerfile一致)
执行compose文件
-
后台运行
加上
-d
参数:docker-compose up -d
[root@localhost docker_exec]# docker-compose up -d
Starting docker_exec_flask-demo_1 ... done
Starting docker_exec_redis-server_1 ... done
查看日志
docker-compose logs
:查看日志-
查看docker-compose的服务情况
docker-compose ps
``` [root@localhost docker_exec]# docker-compose psName Command State Ports
docker_exec_flask-demo_1 flask run -h 0.0.0.0 Up 0.0.0.0:8080->5000/tcp,:::8080->5000/tcp docker_exec_redis-server_1 docker-entrypoint.sh redis … Up 6379/tcp
<a name="vdOX1"></a>
## 停止docker-compose
- `docker-compose stop`
[root@localhost docker_exec]# docker-compose stop Stopping docker_exec_redis-server_1 … done Stopping docker_exec_flask-demo_1 … done
<a name="otUMO"></a>
## 删除已停止的通过compose创建的容器
- `docker-compose rm`
[root@localhost docker_exec]# docker-compose rm Going to remove docker_exec_redis-server_1, docker_exec_flask-demo_1 Are you sure? [yN] y Removing docker_exec_redis-server_1 … done Removing docker_exec_flask-demo_1 … done
> Note
> 此命令不能删除通过compose创建的network以及images。
<a name="UNq0b"></a>
## 命名规则
- 以network为例,命令前缀默认是docker-compose.yml文件所在目录的名
[root@localhost docker_exec]# docker network ls NETWORK ID NAME DRIVER SCOPE 1e6a14c63400 bridge bridge local 8256654a8367 demo-network bridge local 7dd642472465 docker_exec_demo-network bridge local d0763579887a host host local 6a03d63270a6 none null local
- 指定命名前缀即project的名字,加上`-p <project_name>`参数,但是不方便的是每次使用`docker-compose`都得加上`-p`这个参数
[root@localhost docker_exec]# docker-compose -p myproject up -d Creating network “myproject_demo-network” with the default driver Creating myproject_redis-server_1 … done Creating myproject_flask-demo_1 … done ```
- 自定义container的名字,默认是当前目录名为前缀,后缀为从1开始的数字
- 默认名字如:
docker_exec_flask-demo_1
- 自定义名字:在
docker-compose.yml
文件中加上container_name
指定名字即可
- 默认名字如: