docker pull 卡住(代理问题) 的解决方案
本文最后更新于 2024年6月17日 凌晨
被这个问题解决了一晚上, 已经没有心思吐槽了, 直接简洁易懂的介绍方法以及为什么配置环境变量不起作用
出现问题复现
1 |
|
这个命令一直卡死, 如果继续跟踪报错, 出现:
1 |
|
很显然是被 Q 了的原因
尝试的无效方案
使用:
1 |
|
无法解决
使用系统级代理 proxychains
无法解决
使用官方的代理配置方案: https://docs.docker.com/network/proxy/
在本地 ~/.docker/config.json
配置无效
解决方案
在执行
docker pull
时,是由守护进程dockerd
来执行。 因此,代理需要配在dockerd
的环境中。 而这个环境,则是受systemd
所管控,因此实际是systemd
的配置。
而上述方案以及官方提供的解决思路解决的是 容器运行时 的代理配置
而修改 systemd 的代理需要使用这个文档中的 proxy: https://docs.docker.com/config/daemon/systemd/
步骤
下面直接复述解决方案:
1 |
|
添加:
1 |
|
然后重启 docker daemon:
1 |
|
即可完成 docker pull
不推荐的解决方案
配置镜像 registry, 实测一堆莫名其妙的 bug
docker pull 卡住(代理问题) 的解决方案
https://moreality.net/posts/45709/