一、背景
继上篇文章之后,学习使用Docker Compose(实际项目中需要做对应的变化)
二、docker-compose 安装
官网使用最新版进行安装
https://github.com/docker/compose/releases/
例如:
1. 安装当前稳定版本
curl -L https://github.com/docker/compose/releases/download/1.24.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
2. 对二进制文件应用可执行权限
chmod +x /usr/local/bin/docker-compose
3. 查看版本(也可以校验是否安装成功)
docker-compose --version
三、 docker-compose 命令简介
如命令:
docker-compose up -d
up
启动所有在Compose问中定义的容器,并且把它们的日志信息汇集在一起。通常会添加-d参数(在up后面),让容器在后台执行
start
启动指定的已经存在的容器
build
重新建造由Dockerfile构建的镜像。
ps
获取由Compose管理的容器的状态信息
run
启动一个容器,并允许一个一次性的命令。被连接的容器会同时启动,除非用了 --no-deps参数。
logs
汇集由Compose管理的容器的日志,并以彩色输出。
stop
停止容器,但不会删除它们
rm
删除已停止的容器。不要忘记使用-v参数来删除任何由Docker管理的数据卷
说明:
一个普通的工作流程以docker-compose up -d名利启动应用程序开始。docker-compose logs和ps命令可以用来验证应用程序的状态,还能帮助调试。
修改代码后,先执行docker-compose build 构建新的镜像,然后执行docker-compose up -d 取代运行中的容器。注意,Compose会保留原来容器中所有旧的数据卷,这意味着即使容器更新后,数据库和缓存也依旧在容器内(这很可能造成混淆,因此要特别小心)。
如果你修改了Compose的YAML文件,但不需要构建新的镜像,可以通过up -d参数使Compose以新的配置替换容器。如果想要强制停止Compose并重新创建所有容器,可以使用--force-recreate选项来达到目的。
四、 docker-compose.yml 文件模板
#具体的版本号,请参考官网https://docs.docker.com/compose/compose-file/ version: '3.7' services: #声明构建容器的名称,docker-compose start和stop命令可以使用 testhttpweb: #使用指定目录下的Dockerfile进行构建 build: . #相当于docker run命令的-p参数,用于声明对外开放的端口 ports: - "5000:5000" - "8010:80"
五、简单使用
1. 在/root/Root/DefaultHttp的路径下创建yml文件(请参考上一步的模板)
2. 执行命令运行容器
docker-compose up -d
从上图可以看出,即使没有创建image也会成功(会自动进行创建)
3. 查看镜像
docker images
defaulthttp_testhttpweb 为自动创建的镜像
4. 停止和删除容器
docker-compose stop testhttpweb
docker-compose rm testhttpweb
六、总结
实现了docker-compose的安装、命令介绍、简单使用
参考资料:
《Docker开发指南》