跳到主要内容

Docker 配置代理临时永久设置

· 阅读需 2 分钟
素明诚
Full stack development

命令行临时设置

在命令行中临时设置代理

export HTTP_PROXY="http://127.0.0.1:7890"
export HTTPS_PROXY="http://127.0.0.1:7890"
docker pull ubuntu

docker pull 临时设置代理

为了单次 docker pulldocker push 命令使用特定的代理,您可以直接在命令行中设置环境变量。这样设置的环境变量只对当前命令有效,不会影响到其他会话或命令。

示例 使用临时代理拉取 Docker 镜像

HTTP_PROXY="http://127.0.0.1:7890" HTTPS_PROXY="http://127.0.0.1:7890" docker pull ubuntu

这假定您有一个在本地端口 7890 运行的代理服务器。

永久配置

systemd

创建或编辑 Docker 服务的 systemd 配置文件

打开或创建 /etc/systemd/system/docker.service.d 目录下的 http-proxy.conf 文件(如果目录不存在,则需要创建它)

sudo mkdir -p /etc/systemd/system/docker.service.d
sudo nano /etc/systemd/system/docker.service.d/http-proxy.conf

在文件中添加 HTTP_PROXY 和 HTTPS_PROXY 环境变量 在该文件中,添加以下内容(替换 your-proxy-addressport 为您的代理服务器地址和端口)

[Service]
Environment="HTTP_PROXY=http://127.0.0.1:7890"
Environment="HTTPS_PROXY=http://127.0.0.1:7890"
Environment="NO_PROXY=localhost,127.0.0.1,docker-registry.somecorporation.com"
  • NO_PROXY 环境变量用于列出不需要通过代理的地址或域,比如本地的 Docker registry。

重新加载 systemd 管理器配置 重新加载 systemd 以读取新的配置文件

sudo systemctl daemon-reload

重启 Docker 服务 重新启动 Docker 服务以应用代理设置

sudo systemctl restart docker

验证代理设置 检查 Docker 是否已经使用代的环境变量

systemctl show --property=Environment docker

确保没有防火墙或安全设置阻止 Docker 访问代理服务器。