Docker 容器基于 CLI 运行,而 Docker compose 则基于 yaml 配置文件,后者相对自动化程度更高。
一、服务安装
1. 前置服务
Docker compose 是基于 Docker 扩展,因此需要先安装 Docker 服务。
默认 Docker 安装路径为 /var/lib/docker。
yum install docker-ce -y # 通过 yum 源安装
systemctl start docker # 启动服务
2. 文件下载
若使用 curl 命令下载失败可直接进入 Docker GitHub 发布页手动下载文件再上传至服务器,官网直达。
# 文件下载
curl -L "https://mirrors.tuna.tsinghua.edu.cn/docker-compose/latest/$(uname -s)/$(uname -m)/docker-compose" -o /usr/local/bin/docker-compose
3. 链接安装
完成 Docker Compose 文件下载之后需要进行授权并创建链接文件。
# 文件授权
chmod +x /usr/local/bin/docker-compose
# 文件链接
ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
# 安装验证
docker-compose version
二、文件配置
1. 基本格式
Docker Compose 通过 yaml 文件实现容器的管理,其配置内容参数说明如下:
| 参数 | 作用 |
|---|---|
| image | 用于指定所要使用镜像。 |
| container_name | 用于配置启动容器的名称。 |
| environment | 用于配置容器环境变量。 |
| ports | 用于配置容器与本机的端口映射。 |
| volumes | 用于配置容器与本机的文件映射。 |
下述为一个完整的 yaml 配置文件示例。
version: '3'
services:
# Application name
service-1:
# Config the image
image: test_image
# Config the container name
container_name: test_service
# Config the port proxy
ports:
- "8080:8080"
# Config the environment properties
environment:
- props1: value1
- props2: value2
# config the directory or file proxy
volumes:
- /home/docker/test/application.yml:/app/application.yml
# Sharing the same networking space with the Host
network_mode: "host"
# Application name
service-2:
depends_on:
- service-1
2. 网络配置
(1) depends_on
depends_on 用于定义服务之间的启动顺序和依赖关系。具体而言,它指定了某个服务依赖于其他服务,即使依赖的服务启动后,也确保依赖服务在其之前启动。
然而,它并不保证服务已经完全健康或准备好接受连接,因此它主要用于启动顺序的管理。
(2) network_mode
network_mode 用于指定服务使用的网络模式。它可以设置为 bridge、host、none 或自定义网络名称。
默认情况下,Docker Compose 创建一个自定义网络,但你可以通过 network_mode 来覆盖这个行为。
三、命令介绍
1. 服务启停
完成 yaml 文件配置之后,即可在同级目录下通过下述命令启停容器。
当完成容器启动后,可同样通过 docker ps 等命令进行查看,与之前文章提到 docker 使用并无不同。
# 启动服务
docker-compose up
# 后台运行
docker-compose up -d
# 停止服务
docker-compose down
2. 常用命令
除了基础的服务启停之外,常用的命令如下:
# 动态查看日志
docker-compose logs -f