这个方法用几个月了,免费便捷快速。
登录阿里云,搜索【容器镜像服务】,开通个人版实例,https://cr.console.aliyun.com/
需要创建一个命名空间,名字随意,按需求设置是否公开,可创建两个(最多三个),用于公私有的归类,
再创建一个访问凭证。自此,需要记录命名空间NS、用户名U、密码P、镜像仓库地址IR,下图红框中分别是U和IR,后面要用。
登录GitHub,创建一个仓库(注意设置成私有仓库,避免个人凭证泄露),在仓库中创建一个.github/workflows
目录,
该目录下创建一个 yml ,该文件中编写相关逻辑:利用 GitHub Actions 将国外镜像拉取到阿里云的个人镜像库中。
name: Sync Image to Aliyun Example
on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]
jobs:
build:
ubuntu-latest :
steps:
name: Git pull
uses: actions/checkout@v3
name: Set up Docker Buildx
uses: docker/[email protected]
name: Login to Docker Hub
uses: docker/[email protected]
with:
registry: [镜像仓库地址IR]
username: [账号U]
password: [密码P]
logout: false
name: Use1 Skopeo Tools Sync Image to Docker Hub
run: |
skopeo copy docker://rancher/shell:v0.1.18 docker://[镜像仓库地址IR]/[命名空间NS]/rancher-shell:v0.1.18
每次拉取不同的镜像也只需要修改 skopeo copy
这一行中 rancher/shell:v0.1.18
和 rancher-shell:v0.1.18
部分。当提交更改,便会触发 Github Action 执行此脚本,点击 action,可查看执行情况。
可以看见脚本执行的逻辑。
回到阿里云,选择服务地区(我的是杭州),就可以看见镜像仓库中会自动创建rancher-shell
仓库,
进入该仓库,获取其公网地址,
选择镜像版本,
这样就可以在国内免加速拉取了。
docker pull [镜像仓库地址IR]/[命名空间NS]/rancher-shell:v0.1.18
阿里云的容器镜像服务个人免费额度如下。
参考:https://mp.weixin.qq.com/s/-bDrC63J52oSEcIfGcQ7pw
原文始发于微信公众号(安全小将李坦然):GitHubActions & 阿里云解决国内镜像拉取问题
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论