Docker镜像加速 使用HTTP代理直接向Docker官方仓库拉取镜像

Docker镜像加速 使用HTTP代理直接向Docker官方仓库拉取镜像

上期呢我写过一篇利用Docker的Registry镜像服务器配置代理拉取官方的镜像,但是这存在一个弊端,每次拉取镜像时,都会先将镜像缓存到中转服务器中,然后再分发给用户。这种做法无疑会占用大量的磁盘空间,对Registry镜像服务器的存储资源造成压力,还有,当用户首次拉取一个新的镜像时,实际上需要经历两次完整的镜像下载过程,首先是将镜像下载到镜像服务器,然后再次从服务器拉取到本地。这无疑增加了首次拉取镜像的时间成本,降低效率。

上篇文章回顾:

这篇文章呢介绍的是如何自定义Docker的 systemd 服务单元,通过自定义配置文件实现HTTP代理加速

可能有的人会问: 为什么不直接通过 export HTTP_PROXY 实现呢,这样不更简单吗。

确实这样更简单,在全局环境中设置代理,几乎所有命令行程序,包括 Docker,在执行网络操作时都会使用这个代理,可能会影响到系统中的其他程序,如果通过 Docker 的服务配置文件来设置代理,这样只有 Docker 守护进程会受到代理设置的影响,其他的不会。

 

准备工作

首先呢你需要有一个HTTP代理的节点,可以使用局域网中OpenWrt的某种插件实现HTTP代理服务器,或者说通过goproxy这种专业的代理工具在能够访问docker官方仓库的服务器上进行配置,本篇文章我就以我的OpenWrt HTTP代理为例进行配置。

Docker镜像加速 使用HTTP代理直接向Docker官方仓库拉取镜像

Docker镜像加速 使用HTTP代理直接向Docker官方仓库拉取镜像

安装Docker

安装Docker就不用多说了吧,也可以用我的懒人版 Docker一键脚本进行安装:

https://www.geeklinux.cn/articles/264.html

curl https://download.geeklinux.cn/scripts/install_docker.sh | bash

 

配置Docker的服务单元配置文件

安装完成Docker之后,我们需要配置一下Docker服务的 systemd 服务单元文件

一般默认是在/usr/lib/systemd/system/docker.service

我们需要将这个服务单元文件复制到/etc/systemd/system/目录中

然后再/etc/systemd/system/目录中创建一个docker.service.d/的目录,用于存放 Docker 服务的额外配置文件

当然,你也可以直接编辑docker.service配置文件,这是极力不推荐的!!!

然后在/etc/systemd/system/docker.service.d/目录中创建一个扩展名为*.conf结尾的配置文件 *代表任意字符,你可以自由的定义此名称,只要以.conf为扩展名即可。

然后我们需要编辑你的Docker服务的额外配置文件,填入如下内容

[Service]
Environment="HTTP_PROXY=http://10.0.0.1:1080"  
Environment="HTTPS_PROXY=http://10.0.0.1:1080" # http://10.0.0.1:1080为你的HTTP代理地址

懒人办法,直接复制粘贴

cat << 'EOF' > /etc/systemd/system/docker.service.d/proxy.conf
[Service]
Environment="HTTP_PROXY=http://10.0.0.1:1080"
Environment="HTTPS_PROXY=http://10.0.0.1:1080" # http://10.0.0.1:1080为你的HTTP代理地址
EOF

 

重启服务

完了之后我们不要忘记重新加载 systemd 配置并重启 Docker 服务

rm -f /etc/docker/daemon.json # 删除之前配置的镜像加速,建议检查一下
sudo systemctl daemon-reload
sudo systemctl restart docker

 

重启完了之后执行如下命令,查看一下状态,确认是否正常启动

Docker镜像加速 使用HTTP代理直接向Docker官方仓库拉取镜像

如上图所示,Docker已经正常启动并且成功的加载了额外的服务单元配置文件。

现在就可以愉快的拉取镜像了~

 

声明: 本站永久网址: www.itwk.cc
本站为个人非盈利博客,资源均网络收集且免费分享无限制,资源仅供测试学习。
本站所有软件和内容大多数都来源于网络,本站所发布的一切修改补丁、注册机和注册信息及软件的文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。
VIP功能仅仅作为用户喜欢本站捐赠打赏功能,本站不贩卖软件,所有内容不作为商业行为。
如果您的权益受到了侵犯,请将相关证据和详细信息发送至 admin@itwk.cc
我们会在收到您的邮件后,立即进行核实和处理,并在确认问题后采取必要的删除或修改措施。
个人中心
今日签到
有新私信 私信列表
搜索