Docker学习总结(五)——docker-compose的使用
一、docker-compose简介
Docker-Compose项目是Docker官方的开源项目,Docker-Compose项目由Python编写,调用Docker服务提供的API来对容器进行管理,负责实现对Docker单机多容器部署工具,采用yml文件进行编写,能够真正做到一键部署。
对于docker-compose的功能其实也比较好理解,对于一个项目而言不可能只有一个模块,它内部必然分为多个模块,若每个模块的容器运行前都需要先构建/拉取镜像,设置网桥,数据卷等等,工作量也会比较繁琐且容器出错,而docker-compose就是为了简化这一工作流程,实现容器编排工作,这样每次部署之前只需要准备好docker-compose文件就能够一键部署。
二、docker-compose文件编写及实现
version: "3.6" #使用的docker-compose配置文件的版本
services: #服务列表,这是一个父节点
service1: #服务名称
image: 192.168.23.12:8080/xxx/service:1.0 #该服务镜像仓库的地址,若需要自己构建镜像,也可采用build利用Dockerfile自己构建镜像如下一行。
build:
./test/ #设置Dockerfile的路径
container_name: service1 #设置容器名称,若不指定则容器名就由服务名组成
volumes: #设置数据卷
- ./logs:/usr/local/logs
networks: #设置网桥
- my-bridge
environment: #设置环境变量
- server.port=48711
ports: #设置端口映射
- 48711:48711
restart: on-failure #设置重启策略
service2:
image: 192.168.23.12:8080/xxx/service2:1.0
container_name: service2
volumes:
- ./logs:/usr/local/logs
networks: #设置网桥
- my-bridge
depends_on: #设置服务依赖,设置之后即使没有设置网桥,也可以直接通过服务名实现网络互通
- service1
environment: #设置环境变量
- server.port=48712
ports: #设置端口映射
- 48712:48712
restart: on-failure #设置重启策略
当正确编写命令之后,只需要在docker-compose.yml文件所在目录中输入 docker-compose up -d
即可,若需要停止服务,则输入 docker-compose down
。以上示例中仅展示了docker-compose.yml文件中一部分较为常用的标签及其作用。docker-compose只适用于单机的多容器部署,若需要集群的部署管理,需要去学习docker-swarm或者k8s。