什么?Dockerhub Pull不了了!我的解决方案是...
最近,技术圈发生了一件事情,可能会让大家很难受。 那就是,Dockerhub用!不!了!了!连同各大加速的镜像站也全都熄火了。
以前即便是Github用不了,也没什么问题。大不了用科学上网的方法便能解决。但这回出问题的是Dockerhub,它所关联的可是一堆生产环境的应用呐!总不可能也用同样的方法吧?万一被有关部门找上门了,那就真是“厕所电灯——找屎”了!
解决思路
俗话说得好:“只要思想不滑坡 ,方法总比困难多”。随便搜索了一下,立马收到了来自四面八方的网友送来的攻略。十分感谢!总结起来主要有4种不同的思路:
- 实际上还有极少数的docker镜像站仍在倔强地存活着,譬如:
https://docker.m.daocloud.io
。我们可以临时借道用一用,至于能用多久,那就不好说了……我尝试了一下,能用,但有限速,因此建议急性子的朋友,慎入。 - 用
docker save
&docker load
命令,以文件转存的方式来安装镜像。这种方法确实也可以,如果是低频更新,比如一年半载才需要搬一次镜像,也还能接受。如果每周都要更新几回,那就非常不人性化了,尤其是享受过Dockerhub的便利之后,估计没人愿意再回到手动搬运文件的原始状态。 - 自己动手丰衣足食,利用开源代码自己搭建镜像代理服务器。这里不做评价,反正对我是不大合适的。有兴趣的朋友请参考:
https://github.com/dqzboy/Docker-Proxy
- 使用私有Docker镜像仓库,将自己的需要镜像存放在上面。这确实也是个好办法!国内各大云厂商(阿里、腾讯、华为)似乎都有这样的服务。
我的方案
我最终选择的方案是第四个,使用腾讯云扣钉(coding.net)的制品库来制作和存放我的Docker镜像。下面详细介绍一下整个操作步骤:
1、建立代码仓库
首先,创建一个代码仓库,以nginx为例。
然后,新建一个Dockerfile文件,然后写入代码:
FROM nginx:latest
最后,提交保存。
2、创建制品仓库
在【制品管理】的模块中,新建一个制品仓库。注意:仓库类型选Docker
3、创建构建计划
在【构建计划】的模块中,创建一个构建计划。模版选择“Docker 镜像推送”。
然后,代码仓库选择我们刚刚创建的那个。镜像名称可以自己填
推送的制品库选择我们前面所创建的那个即可。
4、构建Docker镜像
点击“立即构建”的图标,在弹出的对话框点“确定”之前,需要填一下tag。
整个构建过程大概半分钟左右就能完成。
5、使用镜像
回到【制品仓库】,可以找到我们刚才所构建的Docker镜像。
点进去详细页面,复制制品地址
最后,pull一下试试。
docker pull chenreal-docker.pkg.coding.net/realproj/docker-images/my-nginx:v20240617
不负众望,成功了!