Docker Hub被墙如何解决
前言
最近看到很多人拉不动docker镜像,连docker hub官网都进不去了,测试了一下国内全红😡
给中国网民一点小小的GFW震撼😅
如何解决
使用镜像加速器
看看你在用什么镜像?👀
ssh登录输入下列命令(由ChatGPT提供)
clear && docker info | { grep -q "Registry Mirrors" && echo "当前使用镜像如下:" && docker info | grep "https" || echo "未找到镜像加速器"; }
我的小主机输出如下:
当前使用镜像如下:
https://dockerproxy.com/
https://hub-mirror.c.163.com/
用未换过镜像的国外小鸡试一下:
未找到镜像加速器
如果你的机器在国内的话就别用官方的了。(翻墙应该行?)
更改 Docker 镜像加速器的一般步骤
连接到你的服务器或本地机器,打开终端。
使用文本编辑器打开 Docker 配置文件
daemon.json
。该文件通常位于以下位置之一:Linux:
/etc/docker/daemon.json
如果
daemon.json
文件不存在,请创建一个新文件并添加以下内容:{ "registry-mirrors": ["新镜像地址"] }
在
"新镜像地址"
处替换为你要使用的新的镜像地址,该文件要符合json规范。如果有多个镜像地址可以如下所示:
{ "registry-mirrors": [ "https://dockerproxy.com", "https://hub-mirror.c.163.com" ] }
保存并关闭
daemon.json
文件。重新启动 Docker 服务,使配置更改生效。在终端中执行以下命令:
systemctl daemon-reload systemctl restart docker
看看是否生效
clear && docker info | { grep -q "Registry Mirrors" && echo "当前使用镜像如下:" && docker info | grep "https" || echo "未找到镜像加速器"; }
一些DockerHub镜像仓库
来源于:关于Docker官方镜像仓库被墙的一些解决办法 群晖已修复! - 我不是矿神 (imnks.com)
阿里云(杭州) https://registry.cn-hangzhou.aliyuncs.com
阿里云(上海) https://registry.cn-shanghai.aliyuncs.com
阿里云(青岛) https://registry.cn-qingdao.aliyuncs.com
阿里云(北京) https://registry.cn-beijing.aliyuncs.com
阿里云(张家口) https://registry.cn-zhangjiakou.aliyuncs.com
阿里云(深圳) https://registry.cn-shenzhen.aliyuncs.com
阿里云(广州) https://registry.cn-guangzhou.aliyuncs.com
阿里云(成都) https://registry.cn-chengdu.aliyuncs.com
腾讯云 https://mirror.ccs.tencentyun.com
微软云 https://dockerhub.azk8s.com
网易 https://hub-mirror.c.163.com
docker proxy https://dockerproxy.com
上海交通大学 https://mirror.sjtu.edu.cn/docs/docker-registry
南京大学 https://docker.nju.edu.cn
道客 DaoCloud https://f1361db2.m.daocloud.io
阿里云(香港) https://registry.cn-hongkong.aliyuncs.com
阿里云(日本-东京) https://registry.ap-northeast-1.aliyuncs.com
阿里云(新加坡) https://registry.ap-southeast-1.aliyuncs.com
谷歌云 https://gcr.io
官方 https://registry.hub.docker.com
使用docker proxy代理拉取镜像
Docker Proxy介绍:多平台容器镜像代理服务,支持 Docker Hub, GitHub, Google, k8s, Quay等镜像仓库。
教程
前往官网:Docker Proxy 镜像加速
第一步:输入原始镜像地址获取命令
以拉取emby为例:emby/embyserver - Docker Image
右侧复制 Docker Pull Command
docker pull emby/embyserver
填入第一步,删除docker pull
,点击 获取命令 按钮
第二步:代理拉取镜像
登录ssh,将上一步获取到的命令输入以拉取镜像
docker pull dockerproxy.com/emby/embyserver:latest
第三步:重命名镜像
下载好后重命名镜像
docker tag dockerproxy.com/emby/embyserver:latest emby/embyserver:latest
第四步:删除代理镜像
docker rmi dockerproxy.com/emby/embyserver:latest
看看镜像加速服务是否失效
ssh开两个会话窗口
一个窗口随便拉个大点的镜像,另一个窗口使用ss -ntp | grep dockerd
命令查看当前连接的IP是啥,再用IP反查域名,就可以知道当前使用的是哪个镜像加速器了,如果已经配置好镜像加速器却连的docker.io的ip那这个服务是不能使用的。
推荐一个学习docker的在线阅读文档:Docker — 从入门到实践