Skip to content

Ubuntu 22.04 安装 Docker 操作文档

日期:2026-07-21 系统:Ubuntu 22.04.5 LTS (jammy) 安装版本:Docker CE 29.6.2(含 docker-buildx-plugin、docker-compose-plugin)


一、为什么要将 xxx 用户加入 docker 组?

1. 原因

Docker 守护进程(dockerd)通过 Unix Socket /var/run/docker.sock 对外提供服务,该文件默认权限为:

srw-rw---- 1 root docker /var/run/docker.sock

即只有 root 用户docker 组的成员 才能访问。

如果不把普通用户加入 docker 组,每次执行 docker psdocker run 等命令都必须加 sudo,不仅繁琐,还容易在脚本和自动化场景中出问题。

2. 操作命令

bash
sudo usermod -aG docker xxx
  • -a:append,追加到组(不加会覆盖用户的其他附加组,非常危险)
  • -G docker:指定目标组为 docker

3. 生效方式

重新登录系统(或执行 newgrp docker)后生效,之后即可免 sudo 使用 docker:

bash
docker ps        # 不再需要 sudo

4. 安全提示

⚠️ docker 组成员等同于拥有 root 权限(可通过挂载宿主机根目录的容器逃逸),只应将可信用户加入该组。


二、安装过程记录

1. 环境检查

bash
cat /etc/os-release    # 确认系统为 Ubuntu 22.04 (jammy)
which docker           # 确认 docker 未安装

2. 遇到的问题及处理

问题 1:已有 Docker 源但缺少 GPG 公钥

apt update 报错:

NO_PUBKEY 7EA0A9C3F273FCD8
The repository 'https://download.docker.com/linux/ubuntu jammy InRelease' is not signed.

处理:重新导入 GPG 公钥到源指定的 keyring 路径(/etc/apt/keyrings/docker.gpg)。

问题 2:download.docker.com 网络握手失败(无法访问)

Could not handshake: Error in the pull function. [IP: 3.169.231.109 443]

处理:将软件源切换为 阿里云镜像源

3. 完整安装步骤(可复现)

bash
# ① 导入阿里云镜像的 GPG 公钥
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg \
  | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg

# ② 配置阿里云 Docker CE 软件源
echo "deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu jammy stable" \
  | sudo tee /etc/apt/sources.list.d/docker.list

# ③ 更新软件包索引
sudo apt-get update -y

# ④ 安装 Docker CE 及插件
sudo apt-get install -y docker-ce docker-ce-cli containerd.io \
  docker-buildx-plugin docker-compose-plugin

# ⑤ 将当前用户加入 docker 组(免 sudo,重新登录后生效)
sudo usermod -aG docker xxx

4. 安装验证

bash
# 服务状态(应显示 active,且已设置开机自启)
sudo systemctl is-active docker

# 版本确认
sudo docker version

# 运行测试容器
sudo docker run --rm hello-world

验证结果:

项目结果
docker 服务active(开机自启已启用)
Server 版本29.6.2
hello-world 测试容器✅ 运行成功

三、涉及的配置文件

文件说明
/etc/apt/sources.list.d/docker.listDocker CE 软件源(阿里云镜像)
/etc/apt/keyrings/docker.gpgDocker 仓库 GPG 公钥
/lib/systemd/system/docker.servicedocker 服务单元(已 enable)

四、常用命令速查

bash
docker ps                  # 查看运行中的容器
docker images              # 查看本地镜像
docker compose version     # 查看 compose 插件版本
sudo systemctl restart docker   # 重启 docker 服务