四十五、Docker Compose-命令行基本使用
2021-12-31 本文已影响0人
InsaneLoafer
Note
运行docker-compose
时需要在docker-compose.yml
文件的目录下执行。否则找不到compose文件就会输出错误。
docker-compose.yml
的文件名不能改变,否则需要额外指定-f
文件运行。(与Dockerfile一致)
执行compose文件
-
docker-compose up
前台运行
后台运行
- 加上
-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 logs -f
:实时查看日志
image.png
查看docker-compose的服务情况
docker-compose ps
[root@localhost docker_exec]# docker-compose ps
Name 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
停止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
删除已停止的通过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。
命名规则
- 以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
指定名字即可
- 默认名字如: