Docker Compose

常用命令

docker-compose

docker-compose [-f <arg>...] [options] [COMMAND] [ARGS...]
  • -f,–file FILE指定Compose模板文件,默认为docker-compose.yml,可以多次指定。
  • -p,–project-name NAME指定项目名称,默认将使用所在目录名称作为项目名。
  • -x-network-driver 使用Docker的可拔插网络后端特性(需要Docker 1.9+版本)
  • -x-network-driver DRIVER指定网络后端的驱动,默认为bridge(需要Docker 1.9+版本)
  • -verbose输出更多调试信息
  • -v,–version打印版本并退出

docker-compose up

docker-compose up [options] [--scale SERVICE=NUM...] [SERVICE...]
  • -d 在后台运行服务容器
  • –no-color 不使用颜色来区分不同的服务的控制输出
  • –no-deps 不启动服务所链接的容器
  • –force-recreate 强制重新创建容器,不能与–no-recreate同时使用
  • –no-recreate 如果容器已经存在,则不重新创建,不能与–force-recreate同时使用
  • –no-build 不自动构建缺失的服务镜像
  • –build 在启动容器前构建服务镜像
  • –abort-on-container-exit 停止所有容器,如果任何一个容器被停止,不能与-d同时使用
  • -t, –timeout TIMEOUT 停止容器时候的超时(默认为10秒)
  • –remove-orphans 删除服务中没有在compose文件中定义的容器
  • –scale SERVICE=NUM 设置服务运行容器的个数,将覆盖在compose中通过scale指定的参数

    docker-compose up
    启动所有服务
    docker-compose up -d
    在后台所有启动服务
    -f 指定使用的Compose模板文件,默认为docker-compose.yml,可以多次指定
    docker-compose -f docker-compose.yml up -d
    docker-compose ps
    列出项目中目前所有的容器
    docker-compose start 
    启动已经存在的服务容器

简洁

docker build/run 手动操作,单个容器

微服务,100个微服务,依赖关系

Docker Compose 来轻松高效管理容器,定义多个容器

作用:批量容器编排

Compose 是Docker 官方的开源项目,需要安装

Dckerfile 让程序在任何地方运行,web服务:redis mysql nginx ....多个容器

Compose

#A docker-compose.yml looks like this:
version: "3.9"  # optional since v1.27.0
services:
  web:
    build: .
    ports:
      - "5000:5000"
    volumes:
      - .:/code
      - logvolume01:/var/log
    links:
      - redis
  redis:
    image: redis
volumes:
  logvolume01: {}

docker-compose up 100个服务
Compose:

  • 服务services,容器,应用(web、redis、mysql....)
  • 项目project,一组关联的容器。博客。(web、mysql...)

安装

https://docs.docker.com/compose/install/

体验

https://docs.docker.com/compose/gettingstarted/

  1. 应用 app.py
  2. Dockerfile应用打包为镜像
  3. Docker-compose yaml文件(定义整个服务,需要的环境,web、redis)完整的服务
  4. 启动compose 项目(docker-compose up)

    流程

  5. 创建网络
  6. 执行yaml
  7. 启动服务

    yaml文件编写

    #3层
    version:'版本'
    services:'服务'
     服务1:web
     #服务配置
     images
     build
     network
     .......
     服务2:redis
     .....
     服务3:
     .......
    #其他配置 网络、卷、全局规则
    

Docker Swarm

集群方式部署

Docker Stack