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
如果你弄了之后还是不行,请检查你的木棍质量。