在 Debian 上拉取镜像时遇到网络问题,可以通过配置代理或镜像加速器来解决。这里为你提供两种最有效的方法,可以根据你的网络环境选择。
方法一:使用国内镜像加速器(推荐,配置简单)
这是最便捷的方法,通过修改 Docker 的配置文件来指定国内镜像源。
1. 创建或修改 Docker 配置文件
在终端中执行以下命令,创建或覆盖 /etc/docker/daemon.json 文件:
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": [
"https://docker.xuanyuan.me",
"https://docker.1ms.run",
"https://docker.m.daocloud.io",
"https://registry-1.docker.io"
]
}
EOF
镜像源说明:上面配置了三个目前可用的国内镜像源,以及一个 Docker Hub 官方源作为兜底。列表中的 https://docker.xuanyuan.me 和 https://docker.1ms.run 是 2026 年实测速度较快的源。
注意:URL 末尾不要添加斜杠 /。
2. 重启 Docker 服务使配置生效
sudo systemctl daemon-reload
sudo systemctl restart docker
3. 验证配置是否生效
docker info | grep -A 3 "Registry Mirrors"
如果输出中包含了刚配置的镜像地址,说明配置成功。
4. 拉取镜像
现在可以正常拉取镜像了:
# 比如拉取 sun-panel 镜像
docker pull hslr/sun-panel:latest
方法二:为 Docker 守护进程配置 HTTP/HTTPS 代理
如果镜像加速器仍然无法满足需求(例如拉取的是私有仓库镜像),或者你已经有可用的代理服务器,可以为 Docker 守护进程配置代理。
1. 创建代理配置文件
sudo mkdir -p /etc/systemd/system/docker.service.d
sudo nano /etc/systemd/system/docker.service.d/http-proxy.conf
2. 写入代理信息
在打开的文件中,根据你的代理类型填入以下内容(请将 proxy.example.com:8080 替换为你实际的代理地址和端口):
HTTP 代理:
[Service]
Environment="HTTP_PROXY=http://proxy.example.com:8080"
Environment="HTTPS_PROXY=http://proxy.example.com:8080"
Environment="NO_PROXY=localhost,127.0.0.1"
SOCKS5 代理(如果你使用的是类似 Clash 的软件):
[Service]
Environment="HTTP_PROXY=socks5://127.0.0.1:7890"
Environment="HTTPS_PROXY=socks5://127.0.0.1:7890"
Environment="NO_PROXY=localhost,127.0.0.1"
NO_PROXY 用于排除本地地址,避免本机通信也走代理。
3. 重新加载并重启 Docker
sudo systemctl daemon-reload
sudo systemctl restart docker
4. 验证代理是否生效
docker info | grep -i proxy
如果能看到你配置的代理信息,说明代理已生效。
评论