让 Docker 守护进程走代理,改的是 systemd 的环境变量,不是 daemon.json。
如果是手动装的 docker
系统里没有 docker 自带的 unit 文件时,把 https://github.com/moby/moby/tree/master/contrib/init/systemd 里的两个文件拷到 /etc/systemd/system:

用官方脚本或发行版包装的,这一步可以跳过。
建一个 drop-in 配置
mkdir -p /etc/systemd/system/docker.service.d
touch /etc/systemd/system/docker.service.d/proxy.conf
写入:
[Service]
Environment="HTTP_PROXY=http://proxy.example.com:80"
Environment="HTTPS_PROXY=https://proxy.example.com:443"
Environment="NO_PROXY=localhost,127.0.0.1,docker-registry.example.com,.corp"
NO_PROXY 别漏,尤其是 localhost 和内网 registry,不排除的话拉镜像会绕一圈代理再回来。
重载并重启
systemctl daemon-reload
systemctl restart docker
验证
systemctl show --property=Environment docker
能打出这三行就生效了:
Environment=HTTP_PROXY=http://proxy.example.com:80 HTTPS_PROXY=https://proxy.example.com:443 NO_PROXY=localhost,127.0.0.1,docker-registry.example.com,.corp
评论
还没有人留言。