前言
国内网络环境是无法访问docker hub的,使用docker拉取镜像也是比较困难,要么直接报错提示连接超时,要么就是网速特别慢,拉取镜像要等待很久,所以我们要给docker提速,让他能够更流畅的工作。docker加速通常有两种方式,一种是配置docker国内镜像站点,另一种则是配置代理。docker的安装可参考之前文章:
使用国内镜像站
配置方式
这种方式也是大家普遍使用的方式,修改或者增加/etc/docker/daemon.json
,在配置文件中增加registry-mirrors仓库镜像地址。配置完docker会从配置的镜像地址去下载。这里是整理的一些可用的镜像地址:
{
"registry-mirrors": [
"https://registry.docker-cn.com",
"http://hub-mirror.c.163.com",
"https://docker.mirrors.ustc.edu.cn",
"https://dockerhub.azk8s.cn",
"https://mirror.ccs.tencentyun.com",
"https://registry.cn-hangzhou.aliyuncs.com",
"https://docker.1panel.live",
"https://atomhub.openatom.cn/",
"https://hub.uuuadc.top",
"https://docker.anyhub.us.kg",
"https://dockerhub.jobcher.com",
"https://dockerhub.icu",
"https://docker.ckyl.me",
"https://docker.awsl9527.cn"
]
}
配置完成之后让docker重读配置文件,命令:systemctl reload docker.service
。
缺点
使用此种方式配置的,只能拉取镜像的时候使用加速镜像。使用docker search
还是会提示超时和无法完成搜索,在此种配置环境下,如果想要使用docker search
需要手动指定加速镜像地址。如:docker search register.liberx.info/prometheus
。
还有上面镜像站点是不稳定的,也就是说当下配置可用,过一段时间可能就无法使用了。
使用代理加速
前提
首先要有科学上网环境,也就是VPN。但是这里并不是要说使用VPN全局代理的环境主机。这样也就不用配置了,默认就是加速状态,因为是全局代理,所有出站请求都会走代理,自然docker的也不例外。
配置docker使用代理的原因
通常docker主机都是用来做服务主机的,服务主机内部不会常驻VPN。因为服务器除了配置时需要从外网获取资源,其它大部分时间都是在提供上行流量。这里就是要解决没有常驻VPN的服务主机无法拉取镜像的问题。还有一个原因通常商用VPN对客户端数量是有要求的,同时在线客户端数量越多,资费也就越贵。
网络结构说明
在局域网环境下需要有一个已经连接VPN的主机。我的局域网环境有一台配置VPN的windows主力台式机,还有一个已经配置VPN的mac笔记本用于处理辅助工作。windows设备VPN并不是长连接,而是需要访问github或者其它国外网站时才会进行连接,mac设备是常驻VPN,也就是所有联网都是通过VPN做转发。两个设备使用的VPN软件和形式不一样,windows是使用公共通道VPN用来做过渡,mac下是使用的自建VPN,独立使用。
mac下有通过Parallels Desktop运行的虚拟机AlmaLinux9,虚拟机配置了桥接网卡用来模拟局域网下其它主机设备。虚拟机里面运行有docker,这里使用此虚拟机进行说明。
mac设置VPN允许局域网访问
mac下使用的VPN客户端为V2rayU,这个也是号称mac最强VPN客户端,官方下载地址。通常VPN默认配置都是代理127.0.0.1的本地请求,局域网无法进行连接,只能本机使用。点击软件偏好设置,如图:
将http监听地址由127.0.0.1修改为0.0.0.0,修改后重启软件生效。
windows设置VPN允许局域网访问
windows下使用的VPN客户端为Clash for Windows,在常规设置中将允许局域网连接打开即可,如图:
注意:mac和windows局域网代理打开一个即可。
配置docker使用代理
使用dnf yum包安装的rhel系,或者使用apt包管理器安装的debin系linux系统,都是使用的system对用户进程进行管理。system服务的配置路径有如下两个:/etc/systemd/system
,/usr/lib/systemd/system
。通常docker安装后默认服务配置在后者路径下,修改docker.service,在[Service]块下增加代理
Environment="HTTP_PROXY=10.37.129.2:1097"
Environment="HTTPS_PROXY=10.37.129.2:1087"
如图:
修改后重启docker服务:
systemctl daemon-reload
systemctl restart docker
此时代理配置生效,可以直接进行镜像拉取或者使用docker search命令进行搜索。
总结
上述描述了两种docker加速的方式,但是使用国内镜像站的方式会有一些缺点。所以详细描述了如何配置使用代理的方式加速。
--EOF
版权属于:redhat
本文链接:https://blog.zhangshuocauc.cn/archives/20/
本站采用“知识共享署名 - 非商业性使用 - 相同方式共享 4.0 中国大陆许可协议” 进行许可 您可以转载本站的技术类文章,转载时请以超链接形式标明文章原始出处,Thank you.