目录
1. Docker Compose 简介
2. Docker Compose 安装
2.1 在 Ubuntu 上安装 Docker Compose
2.1.1 通过 apt 安装
2.1.2 使用官方脚本安装最新版本
2.2 在 CentOS 上安装 Docker Compose
2.2.2 使用官方脚本安装最新版本
2.2.3 使用 pip 安装
2.3 在 openEuler 上安装 Docker Compose
2.3.1 使用官方脚本安装最新版本
2.2.2 检查并通过 dnf 安装 Docker Compose
2.3.3 使用 pip 安装
3. Docker Compose 测试示例
3.1 目录结构:
3.2 docker-compose.yml 文件内容:
3.3 html/index.html 内容示例:
3.4 启动服务
3.5 访问 Web 服务
3.6 看能出现问题
3.6.1 解决端口冲突
3.6.2 停止并移除服务
4.docker compose常用命令
4.1 启动和停止服务
4.1.1 启动服务
4.1.3 停止并移除容器、网络、卷
4.2 构建和管理服务
4.2.1 构建或重建服务
4.2.2 拉取服务的镜像
4.2.3 重新启动服务
4.3 监控和调试
4.3.1 查看服务的日志
4.3.2 列出当前项目的所有容器
4.3.3 查看服务的状态
4.4 扩展和缩放服务
4.4.1 扩展服务
4.5 运行一次性命令和任务
4.5.1 在服务容器中运行命令
4.5.2 运行一次性任务
4.6 配置管理
4.6.1 查看配置
4.6.2 列出定义的服务
Docker Compose 需要在已经安装了 Docker 的基础上进行安装。
Docker安装参考:Ubuntu、centos、openEuler安装docker-CSDN博客
Docker与compose的区别:Docker 和 Docker Compose 的区别对比-CSDN博客
1. Docker Compose 简介
Docker Compose 是一个用于定义和管理多容器 Docker 应用程序的工具。通过编写一个简单的 YAML 文件 (docker-compose.yml
),您可以定义应用的服务、网络和卷,并通过一个命令来启动、停止或管理整个应用程序的各个容器。Docker Compose 主要用于以下场景:
- 微服务架构:管理由多个微服务组成的应用程序。
- 本地开发环境:为开发者提供一致的本地环境,方便调试和测试。
- 自动化测试:快速启动和销毁测试环境。
2. Docker Compose 安装
根据您的操作系统,选择以下安装方法。
2.1 在 Ubuntu 上安装 Docker Compose
2.1.1 通过 apt
安装
1.更新软件包索引:
sudo apt update
2.安装 Docker Compose:
sudo apt install docker-compose
3.验证安装:
docker-compose --version
2.1.2 使用官方脚本安装最新版本
1.下载最新版本:
sudo curl -L "https://github.com/docker/compose/releases/download/v2.22.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
2.赋予执行权限:
sudo chmod +x /usr/local/bin/docker-compose
3.验证安装:
docker-compose --version
2.2 在 CentOS 上安装 Docker Compose
2.2.1 通过 EPEL 安装
1.启用 EPEL 仓库:
sudo yum install epel-release
2.安装 Docker Compose:
sudo yum install docker-compose
3.验证安装:
docker-compose --version
2.2.2 使用官方脚本安装最新版本
1.下载最新版本:
sudo curl -L "https://github.com/docker/compose/releases/download/v2.22.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
2.赋予执行权限:
sudo chmod +x /usr/local/bin/docker-compose
3.验证安装:
docker-compose --version
2.2.3 使用 pip
安装
1.安装 pip:
sudo yum install python3-pip
2.通过 pip 安装 Docker Compose:
sudo pip3 install docker-compose
3.验证安装:
docker-compose --version
2.3 在 openEuler 上安装 Docker Compose
openEuler 与 CentOS 类似,但在某些方面有所不同。以下是两种推荐的安装方法。
2.3.1 使用官方脚本安装最新版本
1.下载最新版本:
sudo curl -L "https://github.com/docker/compose/releases/download/v2.22.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
2.赋予执行权限:
sudo chmod +x /usr/local/bin/docker-compose
3.验证安装:
docker-compose --version
2.2.2 检查并通过 dnf
安装 Docker Compose
1.更新软件包索引:
sudo dnf update
2.搜索 Docker Compose 包:
sudo dnf search docker-compose
如果存在可用的 Docker Compose 包,您会在结果中看到。
3.安装 Docker Compose:
如果搜索结果中显示了 Docker Compose,可以直接使用以下命令安装:
sudo dnf install docker-compose
4.验证安装:
docker-compose --version
2.3.3 使用 pip
安装
1.安装 pip:
sudo dnf install python3-pip
2.通过 pip 安装 Docker Compose:
sudo pip3 install docker-compose
3.验证安装:
docker-compose --version
3. Docker Compose 测试示例
创建一个简单的 docker-compose.yml
文件,包含一个 Nginx 服务和一个 MySQL 数据库服务。
3.1 目录结构:
my_project/
│
├── docker-compose.yml
└── html/
└── index.html
3.2 docker-compose.yml
文件内容:
version: '3.8'
services:
web:
image: nginx:latest
ports:
- "8081:80"
volumes:
- ./html:/usr/share/nginx/html:ro
depends_on:
- dbdb:
image: mysql:5.7
environment:
MYSQL_ROOT_PASSWORD: example
MYSQL_DATABASE: testdb
MYSQL_USER: testuser
MYSQL_PASSWORD: testpassword
ports:
- "3306:3306"
volumes:
- db_data:/var/lib/mysqlvolumes:
db_data:
3.3 html/index.html
内容示例:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Docker Compose Test</title>
</head>
<body>
<h1>Docker Compose is working!</h1>
</body>
</html>
3.4 启动服务
docker-compose up -d
3.5 访问 Web 服务
在浏览器中访问 http://localhost:8081
,您应该看到页面显示 “Docker Compose is working!”。
3.6 看能出现问题
3.6.1 解决端口冲突
如果遇到端口冲突错误,您可以:
1.查找并终止占用端口的进程。
sudo lsof -i :8080 sudo kill <PID>
2.修改 docker-compose.yml
文件中的端口,使用未占用的端口。
3.6.2 停止并移除服务
docker-compose down
4.docker compose常用命令
4.1 启动和停止服务
4.1.1 启动服务
docker-compose up
这个命令会启动 docker-compose.yml
文件中定义的所有服务。如果添加 -d
参数,服务将在后台运行(detached 模式):
docker-compose up -d
4.1.2 停止服务
docker-compose stop
这个命令会停止正在运行的所有服务,但不会移除容器。
4.1.3 停止并移除容器、网络、卷
docker-compose down
这个命令会停止所有服务,并移除创建的容器、网络和卷。如果您想移除关联的数据卷,可以添加 -v
选项:
docker-compose down -v
4.2 构建和管理服务
4.2.1 构建或重建服务
docker-compose build
这个命令根据 Dockerfile 构建镜像。如果只想构建某个服务,可以指定服务名:
docker-compose build <service_name>
4.2.2 拉取服务的镜像
docker-compose pull
这个命令会从远程仓库拉取 docker-compose.yml
文件中定义的镜像。
4.2.3 重新启动服务
docker-compose restart
这个命令会重启所有运行中的服务。
4.3 监控和调试
4.3.1 查看服务的日志
docker-compose logs
这个命令会显示所有服务的日志。如果只想查看某个服务的日志,可以指定服务名:
docker-compose logs <service_name>
4.3.2 列出当前项目的所有容器
docker-compose ps
这个命令会显示当前项目中所有容器的状态和端口映射等信息。
4.3.3 查看服务的状态
docker-compose top
这个命令会显示当前运行的容器及其相关的进程信息。
4.4 扩展和缩放服务
4.4.1 扩展服务
docker-compose up --scale <service_name>=<replica_count>
这个命令会将指定的服务扩展到指定的副本数。例如,扩展 web
服务到 3 个实例:
docker-compose up --scale web=3
4.5 运行一次性命令和任务
4.5.1 在服务容器中运行命令
docker-compose exec <service_name> <command>
这个命令允许您在指定的服务容器中执行命令。例如,在 web
服务容器中打开 Bash shell:
docker-compose exec web bash
4.5.2 运行一次性任务
docker-compose run <service_name> <command>
这个命令会启动一个新的容器并运行指定的命令,然后停止并移除该容器。例如:
docker-compose run web echo "Hello, Docker Compose!"
4.6 配置管理
4.6.1 查看配置
docker-compose config
这个命令会显示当前项目的配置内容,包括合并的配置文件。
4.6.2 列出定义的服务
docker-compose config --services
这个命令会列出 docker-compose.yml
文件中定义的所有服务。