docker使用木棍拉镜像

0. Motivation

由于未知原因,docker无法拉取镜像,我们设置一下环境变量http_proxy。

1. Preliminary

需要注意的是,你在shell终端设置http_proxy是没用的,不然这篇博客也不会出现。

2. Method

docker守护进程是通过systemctl启动的,由之前的博客可知,所有systemctl管理的服务的配置文件都在两个目录内,其中docker服务定义在/lib/systemd/system/docker.service文件中。

对于一个配置文件名为{name}.service的服务而言,其会自动加载{name}.service.d/*.conf配置文件

有两种办法添加docker启动时的环境变量,1. 在docker.service中直接添加环境变量定义 2. 也可以添加一个单独的.conf文件。但是经过本人测试,方法二没起作用,因此使用方法一,方法二的操作留给读者自行探索。

方法一(可行):

编辑文件/lib/systemd/system/docker.service,在[Service]块中添加:

1
2
3
Environment="HTTP_PROXY=http://127.0.0.1:10809"
Environment="HTTPS_PROXY=http://127.0.0.1:10809"
Environment="NO_PROXY=your-registry.com,10.10.10.10,*.example.com"

重启docker

1
2
sudo systemctl daemon-reload
sudo systemctl restart docker

方法二(不可行)参考自该文章

创建目录

1
sudo mkdir /lib/systemd/system/docker.service.d

编辑文件/lib/systemd/system/docker.service.d/http-proxy.conf,输入以下内容:

1
2
3
4
[Service]
Environment="HTTP_PROXY=http://127.0.0.1:10809"
Environment="HTTPS_PROXY=http://127.0.0.1:10809"
Environment="NO_PROXY=your-registry.com,10.10.10.10,*.example.com"

重启docker服务:

1
2
3
sudo systemctl stop docker
sudo systemctl stop docker.socket
sudo systemctl start docker

Appendix

如果你弄了之后还是不行,请检查你的木棍质量。


docker使用木棍拉镜像
https://jcdu.top/2024/06/28/docker使用木棍拉镜像/
作者
horizon86
发布于
2024年6月28日
许可协议