Docker与魔法🪄
[!note]
下面的教程是在Linux环境下进行的。
1. 背景
因为Docker 官方源很早之前就被官方封禁了,国内拉取 Docker 镜像必须依赖国内镜像源:比如网易、中科大、阿里等。
但是有时候我们发现,即使搭配上了国内的镜像源加速,有时候也拉取的很慢,甚至有些镜像换了国内源也会拉取失败。

本文,将为Docker配置上魔法(代理或🪜),从根本上解决Docker镜像拉取问题,让其享受飞一般的拉取速度。
2. 准备工作
- Docker环境
- 魔法、代理、🪜相关的资产
- Linux上使用的魔法的相关工具,例如
clash-for-linux;clash-for-linux项目地址。
[!caution]
必须保证你的Linux系统上,是开着代理的。
3. 为Docker配置代理
3.1 修改Docker镜像加速文件
根据自己系统中Docker镜像加速文件文件的路径,默认的位置在/etc/docker/daemon.json。
修改Docker的daemon.json文件 ,配置内容为下文,没有则新建:
{
"registry-mirrors": [
"https://hub.docker.com/"
]
}
3.2 修改Docker服务文件
docker服务的默认代理配置文件位置如下:/etc/systemd/system/docker.service.d/proxy.conf。
如果你的不知道文件在哪,可以直接执行如下命令查看:
systemctl show -p FragmentPath docker.service

之后,修改你的docker.service文件,然后在service下面加入代理的配置:
[Service]
Environment="HTTP_PROXY=http://XXX:7890"
Environment="HTTPS_PROXY=http://XXX:7890"
这里分别给到HTTP和HTTPS的代理配置,如果你的代理绑定了域名,那么就给域名即可,如果没有绑定域名,直接给到代理IP即可,后面的是代理的端口号,默认都是7890,如果你要改,那么要和自己的代理一起改掉。
由于我的代理和Docker服务都在同一台机器,所以我这里的配置如图:

3.3 加载配置、重启docker
-
加载配置
systemctl daemon-reload -
重启docker
systemctl restart docker -
查看代理配置是否生效
systemctl show --property=Environment docker如果生效了,那么将会打印如下内容:
Environment=HTTP_PROXY=http://XXX:7892 HTTPS_PROXY=http://XXX:7892
4. 校验结果
配置代理之前:

配置代理之后:

可见速度显著提升!
Comments