Docker运维教程(11)docker compose容器编排
一、Docker Compose介绍
它是一款容器编排工具,解决了Dockerfile一次只能管理一个容器的问题,使用compose可以一次管理多个容器,适合多个容器组合使用的场景,比如Harbor仓库就是使用Docker Compose进行管理。而之所以称compose为单机版编排工具是因为它无法跨宿主机工作。
二、Docker Compose配置
1、安装Docker Compose
yum install docker-compose
2、Docker Compose文件编写
Docker Compose通过yaml文件进行配置和工作,Docker Compose官方语法说明https://docs.docker.com/compose/compose-file,注意版本要和Docker引擎版本相匹配。Docker Compose的默认配置文件名应为docker-compose.yaml,或者通过-f指定其他配置名,如果文件路径为/mydocker/docker-compose.yml,那么容器的名字都会自动加上上级目录名为前缀,比如mydocker_centos_latest
version: "3.7" #指定Docker Compose版本 services: #在compose中每一个容器都定义为一个services redis: #第一个services命名为redis,进行扩容或管理操作需要用到这个名字 image: redis:alpine #指定使用的镜像来启动容器,如果镜像不存在会去仓库拉 ports: #端口 映射 - "6379" networks: - frontend #创建一个自定义网络,默认为bridge,如果没有配置的话在启动compose时会根据docker-compose.yaml所属文件夹创建一个同名网络 deploy: #指定与部署和运行服务相关的配置 replicas: 2 #指定运行容器的数量,形成集群 update_config: #配置更新服务,用于无缝更新 parallelism: 2 #一次更新容器的数量 delay: 10s #更新一组容器的等待时间 restart_policy: #重启策略 condition: on-failure web: build: #该镜像不从仓库拉取而是本地构建 context: ./flash #定义需要从哪个目录读取dockerfile dockerfile: Dockerfile #dockerfile的名字 ports: - 8080:5000 db: image: postgres:9.4 volumes: - db-data:/var/lib/postgresql/data networks: backend: #创建了一个名为backend的网络,并指定了网络类型和网段 ipam: driver: default config: - subnet: "172.29.0.0./24" deploy: placement: constraints: [node.role == manager] vote: image: dockersamples/examplevotingapp_vote:before ports: - "5000:80" networks: - frontend depends_on: - redis deploy: replicas: 2 update_config: parallelism: 2 restart_policy: condition: on-failure worker: image: dockersamples/examplevotingapp_worker networks: - frontend - backend deploy: mode: replicated replicas: 1 labels: [APP=VOTING] restart_policy: condition: on-failure delay: 10s max_attempts: 3 window: 120s placement: constraints: [node.role == manager] visualizer: image: dockersamples/visualizer:stable ports: - "8080:8080" stop_grace_period: 1m30s volumes: - "/var/run/docker.sock:/var/run/docker.sock" deploy: placement: constraints: [node.role == manager]
三、Docker Compose常用管理命令(需要在docker compose.yml文件所在路径执行)
docker-compose up -d #创建并后台启动compose中的所有容器 docker-compose up -d --build #如果配置文件中的容器发生修改,可以重新build并自动重启相关容器 docker-compose up --scale web=3 -d #将web这个容器扩展成3个(也可以缩容),并且自动实现负载均衡, docker-compose down #停止并删除容器 docker-compose restart #重启容器 docker-compose stop #停止所有容器 docker-compose ps docker-compose kill
版权声明:本文章版权归数据库运维网(www.ywdba.cn)所有。如需引用本站内容,请注明来源及作者。
评论