最近各大高校以及容器技术社区,由于众所周不知的原因, 纷纷关闭多个镜像加速站点。这极大地影响了工作效率和开发进度。面对这一困境,本文将为你介绍几种有效的解决方案,帮助你顺利拉取Docker镜像,继续你的开发工作。今天就介绍几个方法让拯救你的Docker方法1: 某些云镜像加速方法2: 使用Docker Hub并将镜像推送到阿里云自有仓库方法3:使用Github Action 构建docker镜像方法4: 部署DockerHub的代理方法5: 镜像仓库前缀替换一、某些云镜像加速这里某些云包括但不限于国内的几大云,XX云、腾讯云、华为云,使用的方法都大同小异,这里介绍华为云的用户镜像加速不可用腾讯云镜像加速器地址:https://mirror.ccs.tencentyun.com (已失效)中国科学技术大学:https://docker.mirrors.ustc.edu.cn (已失效)Docker官方镜像(中国区)镜像加速:https://registry.docker-cn.com (已失效)网易云镜像加速器地址:http://hub-mirror.c.163.com (已失效)南京大学镜像加速器地址:https://docker.nju.edu.cn (已失效)镜像加速可用镜像源华为云的镜像加速地址:XXX.mirror.swr.myhuaweicloud.comDaocloud 镜像加速器地址:https://docker.m.daocloud.io华为云镜像加速进入华为云搜索“容器镜像服务”或者 SWR ,进入控制台点击 “镜像资源”---> “镜像中心”---> 镜像加速器操作说明安装/升级容器引擎客户端推荐安装1.11.2以上版本的容器引擎客户端配置镜像加速器针对容器引擎客户端版本大于 1.11.2 的用户 以root用户登录容器引擎所在的虚拟机修改“/etc/docker/daemon.json”文件(如果没有,可以手动创建),在该文件内添加如下内容:vi /etc/docker/daemon.json?{ registry-mirrors: https://你的地址.mirror.swr.myhuaweicloud.com }?按“Esc”,输入:wq保存并退出。重启容器引擎配置完成后,执行systemctl restart docker重启容器引擎。 如果重启失败,则检查操作系统其他位置(如:/etc/sysconfig/docker、/etc/default/docker)是否配置了registry-mirrors参数,删除此参数并重启容器引擎即可。确认配置结果执行docker info,当Registry Mirrors字段的地址为加速器的地址时,说明加速器已经配置成功。某云镜像加速镜像加速器点击镜像工具--->镜像加速器二、使用Docker Hub并将镜像推送到自有仓库之前写过一篇文章: https://mp.weixin.qq.com/s/OrcBrtrZRwie3Q8eYVfl-A画个图说明:当然也可以打包下载到本地docker save busybox > busybox.tardocker load busybox.tar三、使用Github Action 构建docker镜像前置条件1.可以访问Github,国内环境github时而抽风体质,如果没有科学环境也可以使用 https://github.com/521xueweihan/GitHub520 +SwitchHosts 基本还是可以使用的(有的话就当我没说)。 2.有个github账号3.免费版Action 每天能使用1小时,每个月33小时(基本上够用)。参考博主悟空的日常:使用Github Action 构建docker镜像 http://wkdaily.cpolar.cn/archives/gc1.要有一个github账号没有账号就需要注册一个。 https://github.com2.fork项目DockerTarBuilderfork 叉子叉到自己的仓库中: https://github.com/wukongdaily/DockerTarBuilder3.点击 Actions点击Actions选项卡,再点击同意选择平台,再填入镜像名4.下载镜像点击 All workflows5.解压恢复镜像将下载好的压缩包上传到docker宿主机上。解压# unzip docker-images-tar.zipArchive: docker-images-tar.zip inflating: x86-64-images.tar.gz 再解压:#tar -zxvf x86-64-images.tar.gz# ls -lh alpine:latest-amd64.tar-rw------- 1 mysql 127 7.8M 7月 4 16:57 alpine:latest-amd64.tar?导入# docker load alpine:latest-amd64.tar?导入成功。# docker imagesREPOSITORY TAG IMAGE ID CREATED SIZEalpine latest a606584aa9aa 13 days ago 7.8 MB四、部署DockerHub的代理1.前置条件有个github账号有个cloudflare账号2.访问并fork如下项目到自己的仓库https://github.com/cmliu/CF-Workers-docker.io3.部署到cf的pages服务中3.1登录cloudflare并点击Worker和Pages点击 “Worker和Pages”再点 概述点击 “点击pages”再点 “连接到Git”3.2 点击pages连接GitHub容易登录之后3.3 选择刚才fork的仓库点击 保存并部署构建和部署继续处理项目4.访问并记录刚才部署的代理网站部署成功,点击访问站点。5.自定义域名这步不是必须因为cloudflare提供的域名太长不利于记忆,可以使用自有的域名,解析我这里配置的域名 dockerhub.xgss.net 再域名解析过来# ping dockerhub.xgss.netPING cf-workers-docker-io-1wu.pages.dev (172.66.47.123) 56(84) bytes of data.64 bytes from 172.66.47.123 (172.66.47.123): icmp_seq=1 ttl=53 time=988 ms64 bytes from 172.66.47.123 (172.66.47.123): icmp_seq=2 ttl=53 time=996 ms?6.修改配置文件sudo mkdir -p /etc/dockersudo tee /etc/docker/daemon.json -EOF{ registry-mirrors: https://docker.fxxk.dedyn.io # 请替换为您自己的Worker自定义域名}EOFsudo systemctl daemon-reloadsudo systemctl restart docker?五、镜像仓库前缀替换如果由于网络限制,你无法直接访问某些镜像仓库,还可以尝试通过修改镜像仓库前缀来拉取镜像。一些国内的服务商提供了镜像仓库的镜像服务,你可以将原有的仓库前缀替换为对应的国内服务商的前缀。例如,将docker.io替换为docker.m.daocloud.io等。这种方法虽然可能不是所有镜像都适用,但能解决一部分镜像拉取问题。https://github.com/DaoCloud/public-image-mirror?tab=readme-ov-file#%E4%BD%BF%E7%94%A8%E6%96%B9%E6%B3%95总结以上就是拯救你的Docker 几种方法,希望本文介绍的这些方法能够帮助到你,让你的Docker之旅更加顺畅无阻。##########################分割线2024年12月19日新增自用的Docker地址注意地址要修改有些可能失效,请注意甄别。vi /etc/docker/daemon.json填写一下内容,注意按需修改{registry-mirrors: https://docker.m.daocloud.io, https://noohub.ru, https://huecker.io, https://dockerhub.timeweb.cloud, https://XXXXXXX.mirror.swr.myhuaweicloud.com, # 改成自己的地址 https://XXXXXXX.mirror.aliyuncs.com,# 改成自己的地址 https://docker.1panel.live, http://mirrors.ustc.edu.cn/, http://mirror.azure.cn/, https://hub.rat.dev/, https://docker.ckyl.me/, https://docker.chenby.cn, https://docker.hpcloud.cloud, https://docker.m.daocloud.io }加载配置,并重启systemctl daemon-reloadsystemctl restart dockerdocker info
另外我们在日常开发中通常会用到各种API接口,比如查询用户IP归属地,手机号归属地,天气预报,万年历等,这时我们可以直接去接口盒子https://www.apihz.cn 查找需要的API即可。接口盒子有数百个免费API,而且采用集群化服务器部署,比一般的API服务商更加稳定。