Docker 在 Ubuntu(国内网络)安装及问题解决总结

1. 背景

在中国大陆网络环境下,直接使用 Docker 官方源安装和拉取镜像会遇到:

  • GPG 密钥下载失败(连接被重置)
  • 仓库添加后签名验证失败
  • 拉取镜像失败(connection refused / timeout)

2. 完整安装步骤(2025 年 12 月最新可用方案)

bash 复制代码
# 安装依赖
sudo apt update
sudo apt install ca-certificates curl gnupg

# 创建 keyrings 目录
sudo install -m 0755 -d /etc/apt/keyrings

# 使用阿里云镜像下载并转换 GPG 密钥(推荐,稳定)
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 仓库
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \
  https://mirrors.aliyun.com/docker-ce/linux/ubuntu \
  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

# 更新包索引并安装 Docker
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

3. 常见问题及解决

问题1:权限问题(permission denied ... docker.sock)

原因:普通用户无权访问 Docker daemon。

解决

bash 复制代码
sudo usermod -aG docker $USER

执行后必须注销重登录 (或重启电脑)才能生效。

生效后即可直接使用 docker 命令,无需加 sudo

问题2:拉取镜像失败(hello-world 无法下载)

原因:官方 registry-1.docker.io 被干扰,旧加速器失效。

解决:配置最新有效的镜像加速器(2025 年 12 月亲测可用)

bash 复制代码
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": [
    "https://docker.1ms.run",
    "https://hub.rat.dev",
    "https://dockerproxy.net",
    "https://docker.xuanyuan.me",
    "https://proxy.vvvv.ee",
    "https://docker.m.daocloud.io"
  ]
}
EOF

# 重启 Docker 使配置生效
sudo systemctl daemon-reload
sudo systemctl restart docker

验证配置:

bash 复制代码
docker info | grep -A 10 "Registry Mirrors"

4. 最终验证安装成功

bash 复制代码
docker run hello-world

成功输出包含以下内容即表示完全正常:

复制代码
Hello from Docker!
This message shows that your installation appears to be working correctly.

运行后查看:

bash 复制代码
docker images          # 能看到 hello-world
docker ps -a           # 能看到一个 Exited 的 hello-world 容器(正常,运行完就退出)

5. 额外建议

  • docker ps 只显示正在运行的容器,hello-world 运行完会自动退出,所以默认看不到是正常的。
  • docker ps -a 查看所有容器(包括已停止的)。
  • 加速器偶尔会变化,如某个失效,Docker 会自动尝试下一个。多配置几个最保险。

至此,Docker 在国内 Ubuntu 环境下的安装和常见问题全部解决!🎉

相关推荐
Alsn861 小时前
等待学习-学习目录:Docker 容器安全攻防
学习·安全·docker
网络研究院2 小时前
2026年网络安全
网络·安全·法律·法规·趋势·发展
酣大智2 小时前
ARP代理--工作原理
运维·网络·arp·arp代理
treesforest2 小时前
AI安全系统如何识别异常访问?IP风险识别正在成为关键能力
网络·人工智能·tcp/ip·安全·web安全
shushangyun_2 小时前
2026年快消品B2B系统推荐:支持终端门店订货、促销政策自动化的工具?
java·运维·网络·数据库·人工智能·spring·自动化
2601_961845152 小时前
粉笔行测题库|系统班|刷题
网络·百度·微信·微信公众平台·facebook·新浪微博
程序猿阿伟3 小时前
《Chrome离线扩展安装的底层逻辑与场景落地指南》
服务器·网络·chrome
InHand云飞小白3 小时前
无人值守站点网络困境?工业级路由器IR315破解连接难题
网络·物联网·4g·工业路由器·4g路由器·iiot·蜂窝路由器
森G4 小时前
75、服务器源码解析---------云视频服务项目
linux·服务器·网络·c++·qt
张飞飞飞飞飞4 小时前
Tmux命令使用教程
linux·服务器·ubuntu