下面给出在 Ubuntu 服务器上“快速安装 Docker + 配置国内镜像提速”的完整步骤(以 Ubuntu 22.04/24.04 为例,其他版本类似)。
一、更新系统并安装基础依赖
sudo apt update && sudo apt upgrade -y
# 安装常用工具
sudo apt install -y ca-certificates curl gnupg lsb-release
二、添加 Docker 官方 GPG 密钥和仓库
1. 创建目录并导入 GPG 密钥
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg |
sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
2. 设置稳定版源(按架构自动选择)
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg]
https://download.docker.com/linux/ubuntu
$(lsb_release -cs) stable" |
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
如果
lsb_release -cs返回的不是你期望的代号(如 jammy/focal),可以手动替换为对应代号:
- 22.04 →
jammy- 20.04 →
focal- 18.04 →
bionic
3. 安装 Docker Engine
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
三、启动并设置开机自启
sudo systemctl enable docker
sudo systemctl start docker
# 验证安装
docker version
docker run hello-world
四、将当前用户加入 docker 组(免 sudo)
sudo usermod -aG docker $USER
# 退出重新登录或执行:
newgrp docker
五、配置国内镜像提速器(提速关键)
1. 编辑 Docker 配置文件
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json << 'EOF'
{
"registry-mirrors": [
"https://docker.m.daocloud.io",
"https://hub-mirror.c.163.com",
"https://mirror.baidubce.com"
],
"exec-opts": ["native.cgroupdriver=systemd"],
"log-driver": "json-file",
"log-level": "warn",
"log-opts": {
"max-size": "10m",
"max-file": "3"
}
}
EOF
说明:
registry-mirrors中可放多个地址,Docker 会按顺序尝试。- 若某个镜像源不稳定,可只保留一个最稳定的。
cgroupdriver=systemd是为了与 systemd 兼容(推荐)。
2. 重启 Docker 服务使配置生效
sudo systemctl daemon-reload
sudo systemctl restart docker
3. 验证镜像提速是否生效
拉取一个较大的镜像测试速度,例如:
docker pull nginx:latest
观察下载速度和日志输出,看是否明显加快。
六、可选:使用国内云厂商提供的镜像提速(阿里云等)
如果你使用的是阿里云 ECS,可以在控制台获取专属提速地址,例如:
https://<你的唯一标识>.mirror.aliyuncs.com
将其放入 registry-mirrors 数组即可,例如:
{
"registry-mirrors": [
"https://<你的唯一标识>.mirror.aliyuncs.com"
]
}
七、常见问题排查
-
无法访问 Docker Hub
- 检查
daemon.json格式是否正确(无多余逗号、括号闭合)。 - 确认网络能访问配置的镜像源地址(
curl https://...)。
- 检查
-
容器启动慢 / 拉取慢
- 尝试更换
registry-mirrors中的源。 - 检查防火墙/安全组是否限制了出站流量。
- 尝试更换
-
权限问题
- 确保当前用户在
docker组:groups $USER - 若仍提示 permission denied,重新登录或
newgrp docker。
- 确保当前用户在
如果你提供具体的 Ubuntu 版本和服务器所在环境(本地机房 / 阿里云 / 腾讯云等),我可以帮你定制一份更精确的配置脚本。
PHPWP博客