docker拉取镜像失败,使用的代理仍然不通的处理办法
1. 确认 Docker 使用了代理
你 curl 用的是代理:
Uses proxy env variable https_proxy == 'http://192.168.222.155:17890'
但是 Docker 默认不会继承系统环境变量,你需要专门配置 Docker 代理。
设置 Docker 的代理环境变量:
创建目录(如果不存在):
sudo mkdir -p /etc/systemd/system/docker.service.d
然后创建文件:
sudo nano /etc/systemd/system/docker.service.d/http-proxy.conf
填入以下内容(根据你的代理地址替换):
[Service]
Environment="HTTP_PROXY=http://192.168.222.155:17890"
Environment="HTTPS_PROXY=http://192.168.222.155:17890"
Environment="NO_PROXY=localhost,127.0.0.1,::1"
保存退出后,刷新 systemd 并重启 Docker:
sudo systemctl daemon-reexec
sudo systemctl daemon-reload
sudo systemctl restart docker
然后测试拉取镜像:
docker pull hello-world
2. Docker 登录(可选但推荐)
有些镜像需要认证,比如你反复请求后可能会被限速。
执行:
docker login
输入 Docker Hub 的用户名和密码或 token。
3. 国内镜像加速器(推荐)
为避免 Docker Hub 网络不稳定的问题,可以继续使用国内镜像源。
编辑 /etc/docker/daemon.json:
{
"registry-mirrors": [
"https://mirror.baidubce.com",
"https://docker.mirrors.ustc.edu.cn",
"https://hub-mirror.c.163.com"]
}
然后重启 Docker:
sudo systemctl daemon-reexec
sudo systemctl restart docker