目录
2.1 在 Ubuntu 上安装 Docker Compose
2.2 在 CentOS 上安装 Docker Compose
2.3 在 openEuler 上安装 Docker Compose
2.2.2 检查并通过 dnf 安装 Docker Compose
Docker Compose 需要在已经安装了 Docker 的基础上进行安装。
Docker安装参考:在ubuntu、centos、openEuler安装Docker、构建一个简单的 Nginx 镜像-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
文件中定义的所有服务。