解决Docker Hub无法访问的问题二

参考资料:

解决Docker Hub无法访问的问题一

参考视频


确认DockerHub是否正常连接:

误区一

镜像是经常被删除的,即使是官方镜像

很多人喜欢在网上查资料,看视频,拿着博主的镜像直接拉取,比如

bash 复制代码
docker pull openjdk:8

但是即使是官方的镜像,也经常会被删除,需要先去dockerHub自己搜下是否存在

经过搜索发现,openjdk:8已经不存在了,所以用博主的就悲催了


加速方案一:

第一个加速方案就是去网上找一些镜像源或者代理地址,比如B站淘宝花几块钱买一些等

镜像源的缺点是镜像不全

代理地址的缺点速度慢

拿到地址后,在配置文件中加上即可:

bash 复制代码
vim /etc/docker/daemon.json

然后重新加载,并重启

bash 复制代码
systemctl daemon-reload
systemctl restart docker

拉取的时候,可以写在镜像前加上地址(下面的代理地址失效了),

bash 复制代码
docker pull cf-workers-docker-io-6es.pages.dev/openjdk:8u102-jre

加速方案二:

参考博主的视频,他的是最全的

这个方案比较氪金,使用阿里云的容器镜像服务+阿里云海外服务器来做

需要注意的是,阿里云的镜像加速服务仅面向阿里云产品


加速方案三:

这个方案也是参考博主的视频,在他的基础上改的

用的是阿里的工作流+阿里云的容器镜像服务

不氪金,直连dockerHub,就是比较麻烦

下面是具体步骤:

1. 登录阿里云镜像服务,并且创建实例

选择海外的,比如新加坡,然后选择个人版

2. 进入个人版,然后创建一个命名空间

比如创建:docker-study-wjl

3. 创建镜像仓库

创建一个镜像仓库,在该命名空间下

至于使用方法,镜像仓库里面其实说的很详细了,我这里也就是结合工作流复述一下

4. 创建工作流

登录阿里云效,创建一个代码库

然后这个项目只需要创建个Dockerfile即可,内容可以为空

还有个自动推送脚本,push.bat,配置好账号密码和git地址可以一键推送

bash 复制代码
@echo off

set USERNAME=q860277630
set PASSWORD=pt-r7PtSGR2gYqgdSNGmbqqy1vy_4ef7341b-eb52-4510-ac57
set REPO=https://%USERNAME%:%PASSWORD%@codeup.aliyun.com/64900cdca708906d745a654a/DockerSpeed-V1.git


git add .
git commit -m "auto commit"
git push %REPO%

pause

创建好后,就把它拉到本地

然后开始配置工作流

登录工作流网站,点击新建工作流

随便选一个,这里选GO中一个选项

把单元测试删了,就留一个推送就行

添加流水线,将刚才创建的git项目添加进去

然后编辑一下推送的信息

主要是填写香港的集群

推送的设置,填写之前创建的镜像仓库,触发流水线后,就会自动推送

最后点击保存并运行,就完成了

5. 从dockerHub拉取镜像到本地

首先我们到dockerHub中找到要拉取的镜像,比如 openjdk:8u121-jdk

(尽量不要拉取最新的,因为最新的可能拉不下来)

然后我们打开之前拉取到本地的项目,修改Dockerfile文件

然后点击push.bat,将修改后的Dockerfile推送到云效

然后打开工作流,就可以看到它被触发,在工作

打开阿里云的镜像仓库,会发现有一个镜像

这个名字其实是之前流水线设置的,如果不喜欢这个名字可以参考

这个其实就是我们需要的镜像,只不过名字和tag变了

6. 获取镜像并修改

打开本地的docker,将该镜像拉取到本地,参考我们创建的阿里云仓库给的操作指南

1. 登录阿里云 Container Registry

(只需要登陆一次,后面就不用了)

bash 复制代码
docker login --username=q860277630 crpi-eoqja8fq38rifseg.ap-southeast-1.personal.cr.aliyuncs.com
2. 拉取镜像
bash 复制代码
docker pull crpi-eoqja8fq38rifseg.ap-southeast-1.personal.cr.aliyuncs.com/docker-study-wjl/docker_hello_world:[镜像版本号]
3. 修改镜像名

将这个镜像修改成dockerHub中的镜像名和tag

bash 复制代码
docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]

🧠 参数解释

参数 说明
SOURCE_IMAGE 原镜像(必须存在)
TAG 标签(默认 latest)
TARGET_IMAGE 新镜像名(可以带仓库地址
bash 复制代码
docker tag \
crpi-eoqja8fq38rifseg.ap-southeast-1.personal.cr.aliyuncs.com/docker-study-wjl/docker_hello_world:2026-04-15-17-33-17 \
openjdk:8u121-jdk

通过docker images 可以看到镜像

然后就可以用了

4. 上传到阿里云镜像仓库

可以将修改后的镜像上传到阿里云镜像仓库,方便下次直接拉取

不过要重新改名

bash 复制代码
docker tag \
crpi-eoqja8fq38rifseg.ap-southeast-1.personal.cr.aliyuncs.com/docker-study-wjl/docker_hello_world:2026-04-15-17-33-17 \
crpi-eoqja8fq38rifseg.ap-southeast-1.personal.cr.aliyuncs.com/docker-study-wjl/openjdk:8u121-jdk

对,这里就是把我们的仓库名称换成dockerHub中的镜像名,版本号换成Tag,其他前缀都一样

用 docker images 查看镜像 ,可以看到我们要的dockerHub中的镜像已经到本地了

然后进行推送

bash 复制代码
docker push \
crpi-eoqja8fq38rifseg.ap-southeast-1.personal.cr.aliyuncs.com/docker-study-wjl/openjdk:8u121-jdk

打开官方仓库,可以看到自动创建了一个仓库,并且含有刚才推送的镜像

相关推荐
Harvy_没救了2 小时前
Docker Desktop 部署新项目详细步骤
运维·docker·容器
两点王爷2 小时前
Ubuntu 机器安装解压软件和ip工具
linux·运维·ubuntu
在深圳搬砖2 小时前
使用Qemu安装Ubuntu教程
linux·运维·ubuntu
IT大师兄吖2 小时前
Qwen3 ASR 流式转写 Docker 懒人整合包
docker·容器·eureka
FORCECON12 小时前
力控SCADA城市轨道交通综合监控系统,综合调度,智慧运维,全景一体化监控,保障安全高效运营
运维·监控·scada·报警·轨道交通·供电·综合调度
源图客2 小时前
Linux系统部署Postgres数据库(ubuntu22.04)
linux·运维·数据库
齐齐大魔王3 小时前
linux-进程通信
linux·运维·服务器
明月夜&3 小时前
Ubuntu 20.04 Docker 部署 Ollama + DeepSeek-Coder:本地 AI 编程助手实战
git·vscode·ubuntu·docker·大语言模型·智能体
Fanfanaas3 小时前
Linux 系统编程 进程篇 (二)
linux·运维·服务器·c语言·开发语言·学习