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 来自动化容器镜像的同步过程。

 

 


已发布

分类

来自

宁ICP备09000617号-1