简介
Compse是一款定义与运行单机多容器应用的工具。使用YAML文件来配置应用服务,只需要一句命令即可创建并启动所有配置的服务。同CI工作流一样,Compose可在多个环境工作。
使用Compose基本步骤如下:
- 使用Dockerfile定义应用环境,为了能随处复制;
- 在docker-compose.yml中定义组织服务,使得他们能同时在各自隔离的环境中运行;
- 执行
docker-compose up
启动Compose并运行整个应用。
docker-compose.yml示例:
version: "3.8"
services:
web:
build: .
ports:
- "5000:5000"
volumes:
- .:/code
- logvolume01:/var/log
links:
- redis
redis:
image: redis
volumes:
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
成功