简介

Compse是一款定义与运行单机多容器应用的工具。使用YAML文件来配置应用服务,只需要一句命令即可创建并启动所有配置的服务。同CI工作流一样,Compose可在多个环境工作。
使用Compose基本步骤如下:

  1. 使用Dockerfile定义应用环境,为了能随处复制;
  2. 在docker-compose.yml中定义组织服务,使得他们能同时在各自隔离的环境中运行;
  3. 执行 docker-compose up启动Compose并运行整个应用。

docker-compose.yml示例:

  1. version: "3.8"
  2. services:
  3. web:
  4. build: .
  5. ports:
  6. - "5000:5000"
  7. volumes:
  8. - .:/code
  9. - logvolume01:/var/log
  10. links:
  11. - redis
  12. redis:
  13. image: redis
  14. volumes:
  15. logvolume01: {}

Compose管理应用的全生命周期:

  • 启动,停止,重新构建
  • 查看正在运行的服务状态
  • 流输出运行服务的日志
  • 在服务中运行一次性的指令

    Compose安装

    Linux环境下,可通过从Github发布库中下载Docker Compose二进制文件。步骤如下:(此方式不可行,Github服务不稳定,下载缓慢) ```shell

    下载二进制文件到目标目录

    sudo curl -L “https://github.com/docker/compose/releases/download/1.27.4/docker-compose-Linux-x86_64“ -o /usr/local/bin/docker-compose

文件添加执行权限

sudo chmod +x /usr/local/bin/docker-compose

检查是否安装完毕

docker-compose —version

使用pip安装,步骤如下(含安装pip):
```shell
# 安装python [https://docs.python-guide.org/starting/install3/linux/#install3-linux]
sudo dnf install python3

# 尝试从标准库引导
python3 -m ensurepip --default-pip
# 确保pip, setuptools, wheel版本最新
python3 -m pip install --upgrade pip setuptools wheel

# 检查pip是否安装完毕
pip --version

# pip安装docker-compose
pip install docker-compose

# 检查docker-compose是否安装完毕
docker-compose --version

实践小结

尝试编写了含nginx服务的docker-compose,第一次运行失败,错误提醒如下:

ERROR: Failed to Setup IP tables: Unable to enable SKIP DNAT rule: (iptables failed: iptables —wait -t nat -I DOCKER -i br-d9af192ac946 -j RETURN: iptables: No chain/target/match by that name. (exit status 1))

检索后重启docker再次运行 docker-compose up 成功