Docker Compose基础


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

文章作者: 烽火戏诸诸诸侯
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 烽火戏诸诸诸侯 !
  目录