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