docker设置网络代理

由于国内网络的限制国内众多仓库的关闭,docker无法拉取官方镜像

Docker 默认情况下不继承系统的环境变量设置(例如 export http_proxy)。因此,即使通过 export http_proxy 配置了代理,Docker 也不会自动使用这些变量。这是因为 Docker 是一个守护进程,其网络配置独立于用户的 Shell 环境。因此即使设置了全局代理,Docker 依然无法直接使用这些代理。

正确设置步骤如下(ubuntu):

  1. 配置 Docker 的代理文件:在 /etc/systemd/system/docker.service.d/ 下创建 http-proxy.conf 文件,内容如下:

    1
    2
    3
    4
    [Service]
    Environment="HTTP_PROXY=http://代理IP:端口号"
    Environment="HTTPS_PROXY=http://代理IP:端口号"
    Environment="NO_PROXY=localhost,127.0.0.1"
  2. 重启 Docker

    1
    2
    sudo systemctl daemon-reload
    sudo systemctl restart docker

这样设置后,Docker 应该可以正常通过代理拉取镜像。