•Docker Compose是一个能一次性定义和管理多个Docker容器的工具。
•详细地说:
Compose中定义和启动的每一个容器都相当于一个服务(service)
Compose中能定义和启动多个服务,且它们之间通常具有协同关系
•管理方式:
使用YAML文件来配置我们应用程序的服务。
Docker Compose安装
Docker for Mac与Docker for Windows自带docker-compose
Linux下需要单独安装:
第一步: 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
第二步:sudo chmod +x /usr/local/bin/docker-compose
终端中使用docker-compose --version查看安装的版本
这里示例安装版本是1.21.2,很可能您看到这里时,已经出现更新的版本,因此建议换成最新版本。
访问github可能网络原因下载失败,可以使用国内镜像
curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.4/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
Docker Compose CLI
利用docker-compose --help查看
对比后会发现:Docker Compose CLI的很多命令的功能和Docker Client CLI是相似的。最主要的区别就是前者能一次性运行管理多个容器,后者只能一次管理一个。
Docker Compose File TOP配置参数概览
Docker Compose File 顶级配置项:
version:指定Docker Compose File版本号 有1,2,3版本,目前都用"3"
services:定义多个服务并配置启动参数
volumes:声明或创建在多个服务中共同使用的数据卷对象
networks:定义在多个服务中共同使用的网络对象
configs:声明将在本服务中要使用的一些配置文件
secrets:声明将在本服务中要使用的一些秘钥、密码文件
x-***:自定义配置。主要用于复用相同的配置。
一个service代表一个container,这个container可以从dockerhub的image来创建,或者从本地dockerfilebuild的image来创建
service的启动类似docker run,可以指定network和volume,所有可以给servier指定network和volume
docker-compose命令
docker-compose up # 会自动搜索当前路径下的 docker-compose.yml文件
docker-compose -f 指定文件 up
docker-compose up -d # 后台执行,一般我们看日志输出,不用这个
docker-compose stop # 停止,不会删除容器和镜像
docker-compose down # 停止,并删除关联的容器
docker-compose start # 启动yml文件管理的容器
docker-compose ps # 正在运行的容器
docker-compose images # docker-compose管理的容器
docker-compose exec yml文件中写的service /bin/bash # 进入到容器内
docker-compose案例
services:
db:
image: mysql:5.7
volumes:
- "db-data:/var/lib/mysql"
networks:
- my-bridge
等同于
docker run -d --network my-bridge -v db-data"/var/lib/mysql mysql:5.7