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 流程,可参考官方文档或相关技术教程。

相关推荐
EasyNVR4 小时前
docker版EasyNVR如何使用同步插件教程(包含网盘挂载,路径映射等)
docker·容器·音视频
岁岁种桃花儿4 小时前
详解kubectl get replicaset命令及与kubectl get pods的核心区别
运维·nginx·容器·kubernetes·k8s
thulium_5 小时前
Redis Cluster + Docker + --net=host在 WSL2 下是一个“看起来能跑,实际上必失败”的组合
redis·docker
EndingCoder7 小时前
属性和参数装饰器
java·linux·前端·ubuntu·typescript
疯子的梦想@8 小时前
记录一次docker+k3s+防火墙规则冲突,导致服务无法正常启动的现象。
docker·容器·eureka
小雨青年9 小时前
环境准备 Windows Mac 下 Docker Desktop 的安装与镜像源加速
windows·macos·docker
生活很暖很治愈10 小时前
Linux基础指令——【2】
linux·服务器·后端·ubuntu
倒流时光三十年10 小时前
阿里云 CentOS 7 使用 docker 安装 Nginx
nginx·阿里云·docker·centos
德育处主任Pro11 小时前
『NAS』在绿联部署一个像素风宝可梦同人游戏-pokerogue
游戏·docker·群晖·nas·绿联