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]块中添加:

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

sudo systemctl daemon-reload
sudo systemctl restart docker

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

创建目录

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

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

[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服务:

sudo systemctl stop docker
sudo systemctl stop docker.socket
sudo systemctl start docker

Appendix

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

posted @ 2024-06-28 13:14  王冰冰  阅读(17)  评论(4编辑  收藏  举报