前言

国内网络环境是无法访问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的主机。我的局域网环境有一台配置VPNwindows主力台式机,还有一个已经配置VPNmac笔记本用于处理辅助工作。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的本地请求,局域网无法进行连接,只能本机使用。点击软件偏好设置,如图:

img

http监听地址由127.0.0.1修改为0.0.0.0,修改后重启软件生效。

windows设置VPN允许局域网访问

windows下使用的VPN客户端为Clash for Windows,在常规设置中将允许局域网连接打开即可,如图:

image-20250116144212731

注意:macwindows局域网代理打开一个即可。

配置docker使用代理

使用dnf yum包安装的rhel系,或者使用apt包管理器安装的debinlinux系统,都是使用的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"

如图:

image-20250116144856871

修改后重启docker服务:

systemctl daemon-reload

systemctl restart docker

此时代理配置生效,可以直接进行镜像拉取或者使用docker search命令进行搜索。

总结

上述描述了两种docker加速的方式,但是使用国内镜像站的方式会有一些缺点。所以详细描述了如何配置使用代理的方式加速。

--EOF

最后修改:2025 年 01 月 16 日
如果觉得我的文章对你有用,请随意赞赏