Docker Proxy
Last updated
Was this helpful?
Last updated
Was this helpful?
docker pull/push
(Docker Daemon)当我们拉取镜像的时候本质上是通过 Docker Client 向 Docker Daemon 发送请求,由 Docker Daemon 执行拉取请求,当无法拉取镜像时需要给 Docker Daemon 配置 Proxy。 详见:
daemon.json
Docker Daemon 的配置文件所在位置如下:
Linux 常规模式
/etc/docker/daemon.json
Linux Rootless 模式
~/.config/docker/daemon.json
Windows
C:\ProgramData\docker\config\daemon.json
macOS Docker Desktop
~/.docker/config/daemon.json
macOS OrbStack
~/.orbstack/config/docker.json
daemon.json
文件内容如下:
Docker Daemon并不支持 ALL_PROXY
或 all-proxy
这个配置。
重启 Docker Daemon 服务:
http-proxy.conf
除了配置 daemon.json
,我们还可以通过 Systemd 的服务配置来为 Docker Daemon 设置 Proxy:
http-proxy.conf
文件内容如下:
Reload 服务配置并重启 Docker Daemon 服务:
验证结果是否符合预期:
docker build/run
(Docker Client)Docker Client 设置 Proxy 后不用重启 Docker,但是需要明白 Docker Client 是通过 ENV 的形式为容器注入代理,这就意味着之前已经存在的容器,在修改配置后是不会生效的,必须停止并删除容器,再重新用 docker run
或者 docker compose up
重新创建容器,这样才会在容器的 ENV 中增加上述 Proxy 配置。
除了这种方式还可以在 CLI 中通过 –env
和 –build-arg
来设置临时代理:
当我们要运行容器或者构建镜像时,需要用到 Proxy 的话,则需要设置 Docker Client 的 Proxy。(~/.docker/config.json
)
详见:
转: