docker配置代理

在k8s编译中需要到很多k8s.gcr.io中的镜像,查了很多资料都没有很好的解决办法。原因是国内同步的镜像都是很久之前的,没有我需要的镜像,所以只能通过代理来解决

1.首先你需要一个科学上网的工具,这一步不多说,自行查找资料。
2.尝试执行如下命令,发现并没有用,原因在于docker并没有使用系统的代理。

1
2
3
4
5
export http_proxy=http://127.0.0.1:8123
export https_proxy=http://127.0.0.1:8123

systemctl daemon-reload
systemctl restart docker

3.为docker设置镜像拉取代理
vim /lib/systemd/system/docker.service系统版本不一样此路径也可能不同

1
2
3
4
5
6
7
8
9
10
11
[Service]
Type=notify
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
ExecReload=/bin/kill -s HUP $MAINPID
TimeoutSec=0
RestartSec=2
Restart=always

# 添加如下两行
Environment="HTTP_PROXY=http://127.0.0.1:8123"
Environment="HTTPS_PROXY=http://127.0.0.1:8123"

1
2
systemctl daemon-reload
systemctl restart docker

4.然后你就能顺利的拉取k8s.gcr.io上的镜像了。