•Docker Compose是一个能一次性定义和管理多个Docker容器的工具。 •详细地说: Compose中定义和启动的每一个容器都相当于一个服务(service) Compose中能定义和启动多个服务,且它们之间通常具有协同关系 •管理方式: 使用YAML文件来配置我们应用程序的服务。

Docker Compose安装

  1. Docker for MacDocker for Windows自带docker-compose
  2. Linux下需要单独安装:
  3. 第一步: sudo curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
  4. 第二步:sudo chmod +x /usr/local/bin/docker-compose
  5. 终端中使用docker-compose --version查看安装的版本
  6. 这里示例安装版本是1.21.2,很可能您看到这里时,已经出现更新的版本,因此建议换成最新版本。
  7. 访问github可能网络原因下载失败,可以使用国内镜像
  8. curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.4/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
  9. chmod +x /usr/local/bin/docker-compose

Docker Compose CLI

  1. 利用docker-compose --help查看
  2. 对比后会发现:Docker Compose CLI的很多命令的功能和Docker Client CLI是相似的。最主要的区别就是前者能一次性运行管理多个容器,后者只能一次管理一个。

Docker Compose File TOP配置参数概览

  1. Docker Compose File 顶级配置项:
  2. version:指定Docker Compose File版本号 123版本,目前都用"3"
  3. services:定义多个服务并配置启动参数
  4. volumes:声明或创建在多个服务中共同使用的数据卷对象
  5. networks:定义在多个服务中共同使用的网络对象
  6. configs:声明将在本服务中要使用的一些配置文件
  7. secrets:声明将在本服务中要使用的一些秘钥、密码文件
  8. x-***:自定义配置。主要用于复用相同的配置。

一个service代表一个container,这个container可以从dockerhub的image来创建,或者从本地dockerfilebuild的image来创建

service的启动类似docker run,可以指定network和volume,所有可以给servier指定network和volume

docker-compose命令

  1. docker-compose up # 会自动搜索当前路径下的 docker-compose.yml文件
  2. docker-compose -f 指定文件 up
  3. docker-compose up -d # 后台执行,一般我们看日志输出,不用这个
  4. docker-compose stop # 停止,不会删除容器和镜像
  5. docker-compose down # 停止,并删除关联的容器
  6. docker-compose start # 启动yml文件管理的容器
  7. docker-compose ps # 正在运行的容器
  8. docker-compose images # docker-compose管理的容器
  9. docker-compose exec yml文件中写的service /bin/bash # 进入到容器内

docker-compose案例

  1. services:
  2. db:
  3. image: mysql:5.7
  4. volumes:
  5. - "db-data:/var/lib/mysql"
  6. networks:
  7. - my-bridge
  8. 等同于
  9. docker run -d --network my-bridge -v db-data"/var/lib/mysql mysql:5.7