Ubuntu 26.04 配置 Docker 镜像加速器(阿里云公共版)
在 Ubuntu 26.04 上成功安装 Docker CE 后,你可能会遇到拉取镜像失败的问题,报错类似 connection reset by peer 或 i/o timeout。这是因为 Docker 默认从海外官方仓库(Docker Hub)拉取镜像,国内访问速度慢且不稳定。
本教程将指导你通过阿里云公共镜像加速器一键配置 Docker,无需创建任何实例,即开即用,大幅提升镜像拉取速度。
适用环境:Ubuntu 26.04 LTS (Resolute Raccoon) / Docker CE 已安装
加速器类型:阿里云公共镜像加速器(无需 ACR 实例)
🚀 一键配置脚本(整体执行)
如果你追求效率,可以直接以 root 权限执行以下脚本。它会自动创建配置目录、写入加速器配置、重启 Docker 服务并验证。
#!/bin/bash
# =============================================
# Ubuntu 26.04 Docker 镜像加速器(阿里云公共版)一键配置脚本
# 功能:配置阿里云公共镜像加速器,解决 Docker Hub 拉取慢/超时问题
# 说明:使用公共加速地址 https://mirrors.aliyun.com,无需创建 ACR 实例
# =============================================
set -e # 遇到错误立即退出
echo "🚀 开始配置 Docker 阿里云公共镜像加速器..."
# 1. 创建 Docker 配置目录(如果不存在)
echo "📁 创建 Docker 配置目录..."
sudo mkdir -p /etc/docker
# 2. 写入阿里云公共镜像加速器配置
# 使用公共地址,无需登录阿里云账号即可使用
echo "📝 写入阿里云公共镜像加速器配置..."
sudo tee /etc/docker/daemon.json <<'EOF'
{
"registry-mirrors": ["https://mirrors.aliyun.com"]
}
EOF
# 3. 重启 Docker 服务使配置生效
echo "🔄 重启 Docker 服务..."
sudo systemctl daemon-reload
sudo systemctl restart docker
# 4. 验证配置是否生效
echo "✅ 验证配置..."
docker info | grep -A 1 "Registry Mirrors" || echo "⚠️ 未找到 Registry Mirrors,请手动验证"
# 5. 测试拉取镜像
echo "🧪 测试拉取 hello-world 镜像..."
docker run hello-world
echo ""
echo "=========================================="
echo "🎉 Docker 阿里云公共镜像加速器配置完成!"
echo "=========================================="
echo "📌 当前加速器地址:"
docker info | grep -A 1 "Registry Mirrors"
echo ""
echo "📌 测试命令:"
echo " docker run -it ubuntu bash"
echo " docker pull nginx"
echo "=========================================="
📖 分步详解
第一步:理解阿里云公共镜像加速器
什么是公共镜像加速器?
阿里云为所有用户提供公共镜像加速器服务,无需手动创建 ACR(容器镜像服务)实例即可直接使用。它的作用是加速拉取 Docker Hub、Google 等公共镜像。
公共加速器 vs ACR 实例的区别:
| 对比项 | 公共镜像加速器 | ACR 个人版/企业版实例 |
|---|---|---|
| 是否需要创建实例 | ❌ 不需要 | ✅ 需要 |
| 是否需要阿里云账号 | ❌ 不需要 | ✅ 需要 |
| 适用场景 | 仅加速公共镜像拉取 | 托管私有镜像、镜像构建自动化、企业级权限管理 |
| 地址格式 | https://mirrors.aliyun.com | https://<你的ID>.mirror.aliyuncs.com |
💡 说明:若仅需基础加速,使用公共地址即可。若需推送私有镜像、绑定代码仓库自动构建等高级功能,才需要创建 ACR 实例,两者互不冲突。
第二步:Docker 配置文件说明
Docker 的配置文件是 /etc/docker/daemon.json。这是 Docker 守护进程的主配置文件,用于自定义各种运行参数。
文件格式要求:
- JSON 格式,必须严格遵循语法(使用双引号,不能有尾随逗号)
- 禁止添加注释(JSON 不支持
//注释,否则会导致语法错误) - 如果文件不存在,需要手动创建
- 修改后需要重启 Docker 服务才能生效
第三步:创建 Docker 配置目录
如果 /etc/docker 目录不存在(新安装 Docker 时可能没有),需要先创建:
sudo mkdir -p /etc/docker
-p 参数表示递归创建,如果父目录不存在也会一并创建。
第四步:写入镜像加速器配置
使用 tee 命令将配置写入 daemon.json 文件:
sudo tee /etc/docker/daemon.json <<'EOF'
{
"registry-mirrors": ["https://mirrors.aliyun.com"]
}
EOF
命令详解:
sudo tee:以 root 权限写入文件,同时输出内容到终端(方便确认)<<'EOF':使用 Here Document 语法,将后续内容作为标准输入'EOF'带引号表示内容原样输出,不会进行变量替换
如果已有配置文件(追加多个加速器):
sudo tee /etc/docker/daemon.json <<'EOF'
{
"registry-mirrors": [
"https://mirrors.aliyun.com",
"https://docker.mirrors.ustc.edu.cn",
"https://hub-mirror.c.163.com"
]
}
EOF
💡 小贴士:可以配置多个加速器,Docker 会按顺序尝试。
第五步:重启 Docker 服务
修改配置后,需要让 Docker 守护进程重新加载配置:
# 1. 重新加载 systemd 配置
sudo systemctl daemon-reload
# 2. 重启 Docker 服务
sudo systemctl restart docker
查看 Docker 服务状态:
sudo systemctl status docker
应显示 active (running)。
第六步:验证配置是否生效
方法1:通过 docker info 查看
docker info | grep -A 1 "Registry Mirrors"
预期输出:
Registry Mirrors:
https://mirrors.aliyun.com
方法2:查看配置文件内容
cat /etc/docker/daemon.json
方法3:通过 Docker 日志验证
sudo journalctl -u docker -n 20 | grep -i mirror
第七步:测试镜像拉取速度
配置生效后,拉取镜像的速度应该明显提升:
# 测试拉取 Ubuntu 镜像
docker pull ubuntu:latest
# 测试拉取 Nginx 镜像
docker pull nginx:latest
# 运行测试容器
docker run -it ubuntu bash
速度对比参考(未配置 vs 已配置):
- 未配置镜像源:拉取
nginx:latest约需 7 分 22 秒 - 配置后:拉取
nginx:latest约需 18 秒 - 速度提升超 10 倍
❓ 常见问题与解决方案
1. 配置后仍然报错 connection reset by peer
原因:除了镜像加速,可能还有其他网络限制(如防火墙、代理)。
解决:
# 1. 检查 Docker 代理配置
echo $http_proxy $https_proxy
# 2. 如果配置了代理,确保 Docker 使用代理
sudo mkdir -p /etc/systemd/system/docker.service.d
sudo tee /etc/systemd/system/docker.service.d/http-proxy.conf <<'EOF'
[Service]
Environment="HTTP_PROXY=http://代理IP:端口"
Environment="HTTPS_PROXY=http://代理IP:端口"
Environment="NO_PROXY=localhost,127.0.0.1"
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
2. docker info 报错 permission denied
原因:当前用户不在 docker 组。
解决:
# 加入 docker 组
sudo usermod -aG docker $USER
# 重新登录或执行
newgrp docker
3. 配置后拉取镜像仍然很慢
原因:可能使用的是阿里云 ECS 但用了公网地址。
解决:如果是阿里云 ECS,改为内网地址:
sudo sed -i 's|https://mirrors.aliyun.com|http://mirrors.cloud.aliyuncs.com|g' /etc/docker/daemon.json
sudo systemctl restart docker
4. daemon.json 格式错误导致 Docker 启动失败
原因:JSON 格式不正确(如使用了单引号、尾随逗号、添加了注释)。
解决:
# 1. 检查 JSON 格式
cat /etc/docker/daemon.json
# 2. 如果格式错误,修复或删除文件
sudo rm /etc/docker/daemon.json
# 3. 重新创建正确的配置
sudo tee /etc/docker/daemon.json <<'EOF'
{
"registry-mirrors": ["https://mirrors.aliyun.com"]
}
EOF
# 4. 重启 Docker
sudo systemctl restart docker
5. Docker 重启后配置失效
原因:JSON 语法错误(如逗号遗漏、引号未闭合)。
解决:使用在线 JSON 校验工具验证语法,修复后重新配置。
6. 拉取镜像时出现 403 Forbidden
原因:① 网络代理限制;② 加速地址拼写错误。
解决:检查代理设置,重新复制粘贴加速地址。
7. 如何查看当前使用的镜像源?
# 查看 Docker 配置
docker info | grep -E "Registry|Mirror"
# 或者查看 daemon.json
cat /etc/docker/daemon.json
📊 配置校验清单
| 检查项 | 命令 | 预期结果 |
|---|---|---|
| 配置文件存在 | ls -la /etc/docker/daemon.json | 文件存在,权限正常 |
| 配置内容正确 | cat /etc/docker/daemon.json | 包含 registry-mirrors 和 mirrors.aliyun.com |
| 加速器生效 | docker info | grep -A 1 "Registry Mirrors" | 显示 https://mirrors.aliyun.com |
| 服务运行正常 | sudo systemctl status docker | active (running) |
| 镜像拉取 | docker pull hello-world | 成功拉取,速度明显提升 |
💡 总结
通过本文,你应该已经掌握了:
- 公共镜像加速器:无需创建 ACR 实例,使用公共地址即可加速 Docker Hub 镜像拉取。
- 配置方法:使用
/etc/docker/daemon.json文件配置registry-mirrors。 - 验证方式:通过
docker info和实际拉取测试验证生效。 - 问题排查:常见报错及解决方案。
下一步:配置好镜像加速器后,可以开始使用 Docker 部署各种容器化应用,如 Nginx、MySQL、Redis 等。若需托管私有镜像或企业级功能,再按需创建 ACR 个人版或企业版实例即可。
如果在配置过程中遇到任何问题,欢迎在评论区留言! 😊
更多推荐


所有评论(0)