Ubuntu22.04 安装 Docker 及 Docker Compose v2 详细教程

本文针对 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 配置国内镜像加速器(阿里云、网易云均可),大幅提升镜像拉取速度。以阿里云为例:

  1. 登录 阿里云容器镜像服务(需注册阿里云账号),在「镜像工具」-「镜像加速器」中获取专属加速地址(每个人的地址不同)。

  2. 创建 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包可正常获取:

  1. 安装必要依赖包
Bash 复制代码
sudo apt update && sudo apt install -y ca-certificates curl gnupg lsb-release
  1. 添加阿里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
  1. 配置阿里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
  1. 更新软件包索引
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(带短横线)命令,可以添加别名实现兼容,无需修改原有操作习惯:

  1. 临时别名(仅当前终端有效)
Bash 复制代码
alias docker-compose='docker compose'
  1. 永久别名(所有终端、重启后仍有效)
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 停止并删除容器。

五、补充说明

  1. Docker Compose v2的配置文件仍支持docker-compose.yml(或docker-compose.yaml),功能与v1完全兼容且性能更优;

  2. 若安装过程中提示包不存在,可重新执行sudo apt update刷新软件源索引后重试;

  3. 阿里源的docker-ce仓库已包含最新版docker-compose-plugin,无需额外手动下载二进制文件。

六、总结

本文完成了 Ubuntu22.04 系统下 Docker 引擎与 Docker Compose v2 的完整安装,核心优化了中国网络环境下的镜像源和加速配置,同时覆盖了权限配置、基础使用及常见问题排查。后续可结合实际业务场景,使用 Docker Compose 编排微服务容器,提升部署效率。若需进一步配置 Docker 集群(如 Swarm)或集成 CI/CD 流程,可参考官方文档或相关技术教程。

相关推荐
礼拜天没时间.5 小时前
深入Docker架构——C/S模式解析
linux·docker·容器·架构·centos
猫头虎6 小时前
如何使用Docker部署OpenClaw汉化中文版?
运维·人工智能·docker·容器·langchain·开源·aigc
会周易的程序员6 小时前
openplc runtimev4 Docker 部署
运维·c++·物联网·docker·容器·软件工程·iot
不爱缺氧i6 小时前
ubuntu离线安装mariadb
linux·ubuntu·mariadb
小Pawn爷6 小时前
1.Docker基础
运维·docker·容器
chinesegf6 小时前
清理docker残留镜像images
运维·docker·容器
小Pawn爷7 小时前
2.Docker的存储
运维·docker·容器
广州中轴线7 小时前
OpenStack on Kubernetes 生产部署实战(十七)
容器·kubernetes·openstack
yyy的学习记录7 小时前
Ubuntu下urdf模型转换成proto模型
linux·运维·ubuntu
礼拜天没时间.8 小时前
自定义镜像制作——从Dockerfile到镜像
linux·docker·容器·centos·bash