摘要:参考 github 共享的 [dockerhub镜像加速器](https://github.com/dongyubin/DockerHub), 但是最近发现越来越不好用了。
1. 参考 github 共享的 [dockerhub镜像加速器](https://github.com/dongyubin/DockerHub), 但是最近发现越来越不好用了。
sudo mkdir -p /etc/dockersudo tee /etc/docker/daemon.json2. 采用 cloudflare 自建 Worker 来实现 Docker 仓库镜像代理
关于 Cloudflare Worker 的配置,网上已有许多教程可供参考,例如这篇:基于Cloudflare搭建私有Docker镜像源_cf-workers-docker.io-CSDN博客需要注意的是,Cloudflare Worker 默认提供的 Worker 域名在国内可能被污染,无法直接访问。因此,建议配置自己的二级域名,例如 docker.yourdomain.com,以确保国内访问的稳定性。Worker 脚本的配置可以参考开源项目 [CF-Workers-docker.io](https://github.com/cmliu/CF-Workers-docker.io)。需要注意的是,域名解析的传播可能需要一定时间,建议在第二天再进行测试。目前,通过该脚本的实现仅能加速 Docker Hub 镜像仓库的访问,仍存在一定的局限性。后续可以进一步探索如何优化其他官方镜像仓库的访问问题。3. 在 WSL2 环境下访问配置后的域名还是遇到问题了,ipv6 不可达,尝试了一些方法,暂未解决。
# 域名解析没有问题nslookup docker.yourdomain.com""" Server: 10.255.255.254 Address: 10.255.255.254#53 Non-authoritative answer: Name: docker.yourdomain.com Address: 172.xx.178.93 Name: docker.yourdomain.com Address: 104.xx.91.191 Name: docker.yourdomain.com Address: 2606:xxxx:3034::6815:5bbf Name: docker.yourdomain.com Address: 2606:xxxx:3034::ac43:b25d"""# 这里就比较坑了,浏览器上可以正常访问到dockerhub页面,但是wsl环境下curl不可达curl -v -L https://docker.yourdomain.com""" * Host docker.yourdomain.com:443 was resolved. * ipv6: 2606:xxxx:3034::6815:5bbf, 2606:4700:3034::ac43:b25d * IPv4: 172.xx.178.93, 104.21.91.191 * Trying 172.xx.178.93:443... * Trying [2606:xxxx:3034::6815:5bbf]:443... * Immediate connect fail for 2606:xxxx:3034::6815:5bbf: Network is unreachable * Trying [2606:xxxx:3034::ac43:b25d]:443... * Immediate connect fail for 2606:xxxx:3034::ac43:b25d: Network is unreachable"""# 查看wsl网络环境ipconfig""" 以太网适配器 vEthernet (WSL (Hyper-V firewall)): 连接特定的 DNS 后缀 . . . . . . . : 本地链接 IPv6 地址. . . . . . . . : fe80::9f29:b748:912a:ff0aI IPv4 地址 . . . . . . . . . . . . : 172.25.112.1 子网掩码 . . . . . . . . . . . . : 255.255.240.0 默认网关. . . . . . . . . . . . . :"""4. 由于手边有支持 IPv6 的群晖设备,我决定改用部署本地镜像仓库的方式来解决问题:
首先,在群晖中安装 Docker,并配置镜像加速地址后,可以正常搜索和拉取镜像。接着,开启群晖的 SSH 服务器,并将本地主机的 ssh 公钥配置到 ~/.ssh/authorized_keys 中。需要注意的是,确保文件权限正确(例如 authorized_keys 文件权限为 600),并检查 SSH 配置选项(如 PubkeyAuthentication 是否启用)。然后,在群晖上部署私有 Docker Registry 仓库。通过 docker pull 拉取所需镜像后,使用 docker tag 重新标记镜像,并推送到本地仓库。之后,在 WSL 环境中即可从本地仓库拉取镜像。此外,建议在主机上配置域名访问本地仓库(例如 registry.local),这样不仅便于访问,还能使代码更易于维护。# 确认 ssh 配置sudo cat /etc/ssh/sshd_config | grep -E '(PubkeyAuthentication|AuthorizedKeysFile)'"""PubkeyAuthentication yesAuthorizedKeysFile .ssh/authorized_keys"""# 修改访问权限chmod 755 ~chmod 700 ~/.sshchmod 600 ~/.ssh/authorized_keys# 部署镜像仓库sudo docker run -d -p 8000:5000 --restart always --name registry registry:2# 配置域名,可以通过域名push/pull镜像echo "192.168.31.107 registry.local" | sudo tee -a /etc/hosts来源:ilGnat.Repo
免责声明:本站系转载,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与本站联系,我们将在第一时间删除内容!