Docker Engine 与 Docker Compose V2 安装配置指南
Docker Engine 与 Docker Compose V2 安装配置指南
前言
Docker 是常用的容器化平台,可以将应用及其依赖打包为镜像,并在不同环境中以容器方式运行。Docker Compose 则用于通过一个 compose.yml 文件定义和管理多容器应用。
需要注意的是,旧版命令 docker-compose 属于 Compose V1;当前更推荐使用 Docker Compose V2,也就是 Docker CLI 插件形式的:
docker compose
本文面向 Linux 服务器环境,整理 Docker Engine 与 Docker Compose V2 的安装、启动、权限配置、常用参数和基础验证步骤。
1. 适用环境
- CentOS / RHEL / Rocky Linux / AlmaLinux
- Ubuntu / Debian
- Docker Engine
- Docker Compose V2
2. 安装 Docker Engine
2.1 快速安装方式
Docker 官方提供便利安装脚本:
curl -fsSL https://get.docker.com | sudo sh
该方式适合测试环境或快速初始化环境。生产环境建议按官方软件源方式安装,并明确 Docker 版本,避免脚本行为变化带来不可控风险。
2.2 CentOS / RHEL 系安装
移除旧版本:
sudo yum remove -y docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
安装依赖:
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
添加 Docker 官方软件源:
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
安装 Docker Engine 与 Compose 插件:
sudo yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
启动并设置开机自启:
sudo systemctl enable --now docker
2.3 Ubuntu / Debian 安装
移除旧版本:
for pkg in docker.io docker-doc docker-compose podman-docker containerd runc; do
sudo apt-get remove -y $pkg
done
安装依赖并添加 GPG Key:
sudo apt-get update
sudo apt-get install -y ca-certificates curl gnupg
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
添加 Docker 软件源:
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
安装 Docker Engine 与 Compose 插件:
sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
启动并设置开机自启:
sudo systemctl enable --now docker
Debian 环境请将上面命令中的
ubuntu替换为debian,并使用对应官方源。
3. 验证 Docker 与 Compose
验证 Docker:
docker version
docker run --rm hello-world
验证 Docker Compose V2:
docker compose version
查看 Docker 服务状态:
systemctl status docker
4. 非 root 用户使用 Docker
如果希望普通用户直接执行 Docker 命令,可以将当前用户加入 docker 用户组:
sudo usermod -aG docker $USER
重新登录终端后验证:
docker ps
注意:加入
docker组的用户可以控制 Docker Daemon,权限较高,只建议给可信用户配置。
5. Docker 常用配置
5.1 开机自启
sudo systemctl enable docker
5.2 镜像加速
编辑 /etc/docker/daemon.json:
{
"registry-mirrors": [
"https://your-mirror.example.com"
]
}
镜像加速地址建议根据当前环境选择可用源,不建议长期依赖已经停止服务或不稳定的旧镜像地址。
重启 Docker:
sudo systemctl daemon-reload
sudo systemctl restart docker
查看配置:
docker info
5.3 修改 Docker 数据目录
创建数据目录:
sudo mkdir -p /data/docker
编辑 /etc/docker/daemon.json:
{
"data-root": "/data/docker"
}
重启 Docker:
sudo systemctl daemon-reload
sudo systemctl restart docker
验证:
docker info | grep "Docker Root Dir"
5.4 容器自启动策略
常用策略:
| 策略 | 说明 |
|---|---|
no |
不自动重启,默认值 |
on-failure |
异常退出时重启,可指定最大次数,例如 on-failure:10 |
unless-stopped |
除非手动停止,否则 Docker 重启后自动启动 |
always |
总是尝试重启容器 |
创建容器时指定:
docker run -d --name mynginx --restart unless-stopped nginx:latest
修改已有容器:
docker update --restart unless-stopped mynginx
6. Docker Compose V2 基础使用
6.1 Compose 文件示例
准备 compose.yml:
services:
web:
image: nginx:latest
ports:
- "8080:80"
restart: unless-stopped
说明:
- Compose V2 使用
docker compose命令。 - 顶层
version字段已不是必需项。 ports的缩进必须正确,否则 YAML 解析会失败。
6.2 启动服务
在 compose.yml 所在目录执行:
docker compose up -d
查看服务:
docker compose ps
查看日志:
docker compose logs -f
停止服务:
docker compose down
6.3 指定 Compose 文件
如果文件不在当前目录,或文件名不是默认的 compose.yml / docker-compose.yml,可以使用 -f 指定文件:
docker compose -f ../docker.yml up -d
注意:-f 是 docker compose 的参数,应放在 up 前面。
6.4 兼容旧命令
旧版 Compose V1 使用:
docker-compose up -d
新版本推荐使用:
docker compose up -d
如果历史脚本中仍然使用 docker-compose,建议逐步迁移到 Compose V2。
7. 常见问题
7.1 普通用户执行 Docker 提示 permission denied
原因通常是当前用户不在 docker 用户组。
处理:
sudo usermod -aG docker $USER
然后重新登录终端。
7.2 docker compose 命令不存在
先检查 Compose 插件是否安装:
docker compose version
如果不存在,安装插件:
CentOS / RHEL:
sudo yum install -y docker-compose-plugin
Ubuntu / Debian:
sudo apt-get install -y docker-compose-plugin
7.3 镜像拉取慢或失败
可以配置可用的镜像加速源,或者检查服务器网络、DNS、代理配置。
8. 总结
- 新环境建议使用 Docker Engine + Docker Compose V2。
- Compose V2 命令是
docker compose,不是旧版docker-compose。 - 生产环境建议使用官方软件源安装,并固定版本。
- 修改 Docker 数据目录、镜像源、用户组权限后,建议重启 Docker 并验证配置。