主题
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 ps、docker run 等命令都必须加 sudo,不仅繁琐,还容易在脚本和自动化场景中出问题。
2. 操作命令
bash
sudo usermod -aG docker xxx-a:append,追加到组(不加会覆盖用户的其他附加组,非常危险)-G docker:指定目标组为 docker
3. 生效方式
重新登录系统(或执行 newgrp docker)后生效,之后即可免 sudo 使用 docker:
bash
docker ps # 不再需要 sudo4. 安全提示
⚠️ 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 xxx4. 安装验证
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.list | Docker CE 软件源(阿里云镜像) |
/etc/apt/keyrings/docker.gpg | Docker 仓库 GPG 公钥 |
/lib/systemd/system/docker.service | docker 服务单元(已 enable) |
四、常用命令速查
bash
docker ps # 查看运行中的容器
docker images # 查看本地镜像
docker compose version # 查看 compose 插件版本
sudo systemctl restart docker # 重启 docker 服务