本文针对 Ubuntu 22.04 LTS 系统,提供 Docker 引擎与 Docker Compose v2 的完整安装步骤,重点解决中国网络环境下的镜像拉取慢、依赖安装失败等问题,同时包含环境验证、基础配置及常见错误排查,适合 Java 后端开发、DevOps 工程师及容器化部署初学者。
一、前置准备
1.1 系统更新与依赖安装
首先更新系统包索引,安装 Docker 所需的依赖工具(如 apt-transport-https、ca-certificates 等),确保后续安装顺利。
bash
# 更新系统包索引
sudo apt update -y
# 安装必要依赖,允许 apt 通过 HTTPS 使用仓库
sudo apt install -y apt-transport-https ca-certificates curl software-properties-common gnupg lsb-release
1.2 关闭防火墙(可选,避免端口拦截)
Ubuntu 22.04 默认启用 ufw 防火墙,若后续容器端口映射无法访问,可临时关闭(生产环境建议按需开放端口,而非直接关闭)。
bash
# 关闭 ufw 防火墙
sudo ufw disable
# 验证防火墙状态(显示 inactive 即为关闭)
sudo ufw status
二、安装 Docker 引擎
2.1 配置 Docker 官方 GPG 密钥
导入 Docker 阿里云镜像源的密钥,确保软件包的真实性。
bash
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
2.2 添加 Docker 软件源(优先阿里云镜像源)
默认官方源在国内访问较慢,此处直接配置阿里云 Docker 镜像源,提升安装速度。
bash
# 添加阿里云 Docker 源到系统源列表
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
2.3 安装 Docker Engine
更新包索引后,安装最新版 Docker Engine(包含 docker-ce、docker-ce-cli、containerd.io)。
bash
# 再次更新包索引(使 Docker 源生效)
sudo apt update -y
# 安装 Docker Engine
sudo apt install -y docker-ce docker-ce-cli containerd.io
2.4 验证 Docker 安装成功
启动 Docker 服务并运行 hello-world 容器,验证 Docker 引擎是否正常工作。
bash
# 启动 Docker 服务并设置开机自启
sudo systemctl start docker
sudo systemctl enable docker
# 验证 Docker 服务状态(显示 active (running) 即为正常)
sudo systemctl status docker
# 运行 hello-world 容器(拉取测试镜像并启动)
sudo docker run hello-world
若输出 Hello from Docker! 相关信息,说明 Docker 安装成功。
2.5 配置 Docker 镜像加速(解决拉取慢问题)
为 Docker 配置国内镜像加速器(阿里云、网易云均可),大幅提升镜像拉取速度。以阿里云为例:
-
登录 阿里云容器镜像服务(需注册阿里云账号),在「镜像工具」-「镜像加速器」中获取专属加速地址(每个人的地址不同)。
-
创建 Docker 配置目录并编写加速配置文件:
bash
# 创建 Docker 配置目录
sudo mkdir -p /etc/docker
# 编写镜像加速配置(替换为你的阿里云加速地址)
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://xxxxxx.mirror.aliyuncs.com"]
}
EOF
# 重启 Docker 服务使配置生效
sudo systemctl daemon-reload
sudo systemctl restart docker
验证加速配置是否生效:
bash
sudo docker info | grep "Registry Mirrors"
若输出配置的加速地址,说明配置成功。
2.6 配置非 root 用户运行 Docker(可选)
默认情况下,只有 root 用户和 docker 组用户可运行 Docker 命令,为避免每次输入 sudo,可将当前用户加入 docker 组:
bash
# 将当前用户加入 docker 组
sudo usermod -aG docker $USER
# 注销当前用户并重新登录(使权限生效)
# 重新登录后验证(无需 sudo 运行 docker 命令)
docker info
三、安装 Docker Compose v2
3.1 配置Docker阿里软件源
由于你已安装Docker,先更新Docker软件源为阿里源,保证docker-compose-plugin包可正常获取:
- 安装必要依赖包
Bash
sudo apt update && sudo apt install -y ca-certificates curl gnupg lsb-release
- 添加阿里Docker官方GPG密钥
Bash
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
- 配置阿里Docker软件源(替换原有源)
Bash
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
- 更新软件包索引
Bash
sudo apt update
3.2、核心步骤:安装Docker Compose v2插件(docker-compose-plugin)
Docker Compose v2在Ubuntu软件源中以docker-compose-plugin包的形式提供,直接通过apt安装即可(阿里源已配置,无需额外下载):
Bash
sudo apt install -y docker-compose-plugin
3.3、(可选)优化:配置命令别名(兼容v1习惯)
如果你习惯使用v1的docker-compose(带短横线)命令,可以添加别名实现兼容,无需修改原有操作习惯:
- 临时别名(仅当前终端有效)
Bash
alias docker-compose='docker compose'
- 永久别名(所有终端、重启后仍有效)
Bash
# 写入用户环境变量配置文件
echo "alias docker-compose='docker compose'" >> ~/.bashrc
# 生效配置(如果使用zsh,替换为 source ~/.zshrc)
source ~/.bashrc
配置完成后,即可使用docker-compose version验证别名是否生效。
四、Docker Compose v2 基础使用示例
以运行一个简单的 Nginx 容器为例,演示 Docker Compose v2 的使用流程。
bash
# 创建示例目录并进入
mkdir -p ~/docker-compose-demo && cd ~/docker-compose-demo
# 创建 docker-compose.yml 文件
tee docker-compose.yml <<-'EOF'
version: '3.8'
services:
nginx:
image: nginx:latest
ports:
- "8080:80"
volumes:
- ./nginx/html:/usr/share/nginx/html
restart: always
EOF
# 创建 Nginx 静态文件目录并添加测试页面
mkdir -p ./nginx/html
echo "<h1>Docker Compose v2 Test (Ubuntu22.04)</h1>" > ./nginx/html/index.html
# 启动容器(后台运行)
docker-compose up -d
# 验证容器状态
docker-compose ps
# 访问测试(本地访问或远程访问服务器 IP:8080)
curl http://localhost:8080
若输出 <h1>Docker Compose v2 Test (Ubuntu22.04)</h1>,说明 Docker Compose 运行正常。后续可通过 docker-compose down 停止并删除容器。
五、补充说明
-
Docker Compose v2的配置文件仍支持
docker-compose.yml(或docker-compose.yaml),功能与v1完全兼容且性能更优; -
若安装过程中提示包不存在,可重新执行
sudo apt update刷新软件源索引后重试; -
阿里源的
docker-ce仓库已包含最新版docker-compose-plugin,无需额外手动下载二进制文件。
六、总结
本文完成了 Ubuntu22.04 系统下 Docker 引擎与 Docker Compose v2 的完整安装,核心优化了中国网络环境下的镜像源和加速配置,同时覆盖了权限配置、基础使用及常见问题排查。后续可结合实际业务场景,使用 Docker Compose 编排微服务容器,提升部署效率。若需进一步配置 Docker 集群(如 Swarm)或集成 CI/CD 流程,可参考官方文档或相关技术教程。