Loading... ## 简介 Docker compose 是doceker提供的一个命令行工具,用于定义和运行多个容器组成的应用,我们可以通过yaml文件声明式的定义应用程序的各个服务,并由单个命令完成应用的创建和启动。 ## 相似工具的区别 ### swarm swarm 是Docker公司自行研发的一款用来管理多主机上的Docker容器的工具,可以负责启动容器,监控容器状态,也提供服务之间的负载均衡。 特点: 更快速的运行速度 快速简单的配置 容器间低耦合 版本控制与组件重用 缺点: 跨平台支持效果差 不提供存储选项 监控信息不足 ### kubernetes kubernetes Google 开元容器编排引擎,支持自动化部署,大规模可伸缩,应用容器化管理,能做到零停机的情况下进行更新。 优点:运行速度快 遵循不可变基础架构的原则(利于回滚) 提供声明式配置 大规模部署和更新软件 处理应用程序的可用性 提供存储卷管理 缺点: 进程初始化时间较长 迁移到无状态需要很多工作 ### docker-compose 基于Docker的单主机容器编排工具。 ## 使用docker-compose ### 示例 此示例按照顶级键的字母顺序排列。 ```yml version: "3.9" services: redis: image: redis:alpine ports: - "6379" networks: - frontend deploy: replicas: 2 update_config: parallelism: 2 delay: 10s restart_policy: condition: on-failure db: image: postgres:9.4 volumes: - db-data:/var/lib/postgresql/data networks: - backend deploy: placement: max_replicas_per_node: 1 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 result: image: dockersamples/examplevotingapp_result:before ports: - "5001:80" networks: - backend depends_on: - db deploy: replicas: 1 update_config: parallelism: 2 delay: 10s 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" networks: frontend: backend: volumes: db-data: ``` ### 最后修改:2021 年 12 月 14 日 04 : 38 PM © 允许规范转载