参考资料:
确认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

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