docker hub被封,docker镜像下架解决方案(手把手操作指南)
在6月6日,被广泛用到的中科大镜像库被关闭,而在多年前,官方docker hub国内就已经无法访问了。
所在上周开始,各个技术群里面就炸锅了,问题是存在的,想办法解决就好了,今天介绍个我这边常用到的一个解决方案。
github action+skopeo+aliyun ACR
看到这个标题懂哥可能已经清楚了,可自行去实践,这里详细介绍下具体步骤,供大家参考。
先来个简单介绍
GitHub Action是一个自动化软件开发工作流程的平台,允许用户在其GitHub仓库中自定义、组合、并执行多种任务。
这些任务可以包括持续集成/持续部署(CI/CD)、代码测试、打包以及部署。
Skopeo 是一个命令行工具,用于在不同格式和平台之间操作、检查、签名、传输和同步容器镜像和镜像仓库。
它可以检查远程注册表中的镜像,而无需下载整个镜像及其所有层,使其成为一个轻量级且模块化的解决方案。
阿里云的ACR(Alibaba Cloud Container Registry)是一个面向容器镜像、Helm Chart等符合OCI标准的云原生制品安全托管及高效分发平台。
简单讲可以作为一个临时的镜像私有或者共有仓库,会有一定的免费额度。
需要准备的什么?
- 一个github账户及仓库
- 阿里云账户及ACR账户
下面是一个使用 GitHub Actions 和 Skopeo 完成镜像从远程仓库拉取并同步到本地或云上私有镜像库的例子:
name: Sync Docker Image
on:
push:
branches:
- main
jobs:
sync:
runs-on: ubuntu-latest
steps:
- name: Git pull
uses: actions/checkout@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2.9.1
- name: Login to Docker Hub
uses: docker/login-action@v2.2.0
with:
registry: registry.cn-hangzhou.aliyuncs.com
username: 阿里云账号
password: 固定访问密码
logout: false
- name: Use Skopeo Tools Sync Image to Docker Hub
run: |
skopeo copy docker://docker.io/nginx:latest: docker://registry.cn-hangzhou.aliyuncs.com/nginx/nginx:latest
在这个例子中,当主分支有新的推送时,GitHub Actions 工作流程会被触发。
它首先登录到 DockerHub,然后使用 Skopeo拉取指定的镜像并保存到阿里云ACR中。
这个流程展示了如何结合使用 GitHub Actions 和 Skopeo 来自动化容器镜像的同步过程。
© 版权声明
文章版权归作者所有,未经允许请勿转载。