docker配置各种代理
Docker daemon代理
问题:从DockerHub拉取镜像时可能出现网络问题。
解决方案:在 /etc/systemd/system/docker.service.d/http-proxy.conf
编写 systemd 配置,配置 HTTP 和 HTTPS 代理:
1 |
|
配置完之后重新加载配置文件并重启docker:
1 |
|
note:不同的发行版中service文件的位置不一样,在archlinux中位于/usr/lib/systemd/system/docker.service
容器内代理
问题:配置每个容器的代理环境变量较繁琐。
解决方案:在 ~/.docker/config.json
中设置全局代理配置。
1 |
|
note:使用sudo启动的容器,配置文件按照/root/.docker/config.json
,并且,这里的proxy如果设置为localhost
或者127.0.0.1
,指的是容器自己的地址。
Build代理
问题:docker build 时网络问题。
解决方案:使用docker build
时添加参数--network=host
设置build网络。或者在docker-compose.yml
中设置:
1 |
|
然后在Dockerfile
中设定环境变量:
1 |
|
Reference
docker配置各种代理
http://zr4in.github.io/2024/12/09/docker配置各种代理/