解决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

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

相关推荐
科研前沿1 天前
镜像视界 CameraGraph™+多智能体:构建自感知自决策的全域空间认知网络技术方案
大数据·运维·人工智能·数码相机·计算机视觉
暴力求解1 天前
Linux---线程基础
linux·运维·服务器
晚风_END1 天前
Linux|操作系统|最新版openzfs编译记录
linux·运维·服务器·数据库·spring·中间件·个人开发
咖喱o1 天前
QinQ/VLAN Stacking
linux·运维·服务器·网络
sduwcgg1 天前
IQ-Learn 在 RTX 3090 服务器上的环境配置与踩坑记录
运维·服务器
marsh02061 天前
43 openclaw熔断与降级:保障系统在异常情况下的可用性
java·运维·网络·ai·编程·技术
摇滚侠1 天前
Docker 如何查询挂载的目录
运维·docker·容器
头发够用的程序员1 天前
C++和Python面试经典算法汇总(一)
开发语言·c++·python·算法·容器·面试
勇闯逆流河1 天前
【Linux】linux进程控制(进程池的详解与实现)
linux·运维·服务器
WJ.Polar1 天前
Scapy基本应用
linux·运维·网络·python