docker-compose - 常用命令 ¶
作者:KK
发表日期:2019.10.11
主要场景 ¶
本人主要用于项目开发目的,涉及 PHP、Python 和 Node.js,偶尔会在测试环境和生产环境上进行维护,其它事情运维人员会处理。
最基本的 ¶
#构建容器
docker-compose build
#启动容器
docker-compose up
docker-compose up -d #后台运行
#停止容器
docker-compose down
#查看当前项目下各个容器的运行情况
docker-compose ps
在测试服务器或生产环境上指定一个别的配置文件来执行编排命令 ¶
docker-compose -f docker-compose-test.yml up -d
其中 docker-compose-test.yml 就是自己要指定的 yml 文件。
这个-f
参数一定要跟在docker-compose
命令后面,因为docker-compose logs -f service名称
这样的命令跟在 logs 后面的 -f 是针对 logs 子命令的,用途是实时跟踪日志输出,所以如果要指定配置文件,就需要在基础命令的后面就加-f 配置文件名
。
实时查看已经后台运行的容器日志 ¶
docker-compose up -d
后台启动 之后,如果操作效果感觉不太对劲需要看看控制台输出日志,可以通过docker-compose logs -f
来查看所有服务的容器实时日志。
如果只要查看某一个服务的容器日志则是docker-compose logs -f service名称
只运行指定的 service ¶
当一个 yml 里面定义了多个 service,而你有时候只需要启动其中一个进行调试,而不想耗时间启动其它,那就如下:
docker-compose run -p 8080:8080 service名称 sh
因为我常常单独启动 web 服务的容器,所以就加了 -p 来声明端口。否则它不会按照 yml 的配置去启动端口的。
通过启动 sh 进入里面的终端后,再在里面执行python web.py
来启动里面的 web 服务器,外面即可访问,而修改代码后停止服务器再重启,并不需要停掉整个容器再重启容器。
开多个窗口进入已经运行的容器 ¶
像上面已经启动了一个 web 容器,可以开多个终端窗口执行docker-compose exec service名称 sh
来进入已经运行起来了的服务容器。