详解使用阿里云镜像仓库构建国外Docker镜像

使用阿里云镜像仓库下载国外镜像

在日常使用 docker 或 k8s 的过程中,经常会需要到国外的网站中下载镜像,但是有些网站在国内是无法访问的。对于这个问题可以使用阿里云提供的镜像仓库进行下载,然后 pull 到本地并修改 tag 来实现。

例如在使用 k8s 部署 istio 时,需要下载 gcr.io/istio-testing/install-cni:1.5-dev 镜像,可以根据如下步骤在阿里云中进行构建和下载:

一、配置 github

首先登录 github 中创建一个用于构建镜像的 repository,例如命名为 image-build

在电脑本地中创建一个文件夹,例如命名为 dockerimage

进入 dockerimage 目录,将 github 中的 repository clone 到本地

https://github.com/coderx-aaron/image-build.git

clone 完成后,进入 image-build 目录,创建一个名为 install-cni 的 dockerfile 文件,内容如下:

from gcr.io/istio-testing/install-cni:1.5-dev

将刚才创建的 dockerfile 文件提交到 git 中并指定分支名称为 master (根据 github 中创建 repository 时默认的第一个分支名称来修改)

git add install-cni
git commit -m "create dockerfile to build install-cni image"
git branch -m master

将 git 中的内容 push 到 github 上面:

git push -u origin master

二、配置阿里云

在阿里云中配置镜像仓库和构建的步骤如下:

登录阿里云控制台,进入容器镜像服务

在左侧选项卡中点击代码源,绑定 github 账号

绑定完成后,在左侧选项卡中点击镜像仓库,开始创建命名空间、仓库名称和摘要信息,点击下一步

在代码源中选择 github,命名空间选择 coderx-aaron (也就是 github 的 username),仓库选择 image-build。在下面的构建设置中勾选海外机器构建,然后点击创建镜像仓库

创建仓库完成后,点击管理仓库,并在左侧选项卡中选择构建。首先在构建规则中设置新的构建规则,需要注意 dockerfile 目录的路径和文件名称,要和 github 中保持一致

创建构建规则后,点击对应规则后面的 “立即构建” 按钮,即可开始镜像的构建。

 三、拉取镜像

镜像构建成功后,即可在 “镜像版本” 选项卡中看到构建好的镜像,接下来将镜像 pull 到本地,步骤如下:

首先在本地机器中命令行中登录阿里云镜像仓库,用于登录的用户名为阿里云账号全名,密码为开通服务时设置的密码。

docker login --username=username registry.cn-hangzhou.aliyuncs.com

从 registry 中拉取镜像到本地

docker pull registry.cn-hangzhou.aliyuncs.com/ops-docker/istio:v1

修改镜像的 tag

docker tag registry.cn-hangzhou.aliyuncs.com/ops-docker/istio:v1 gcr.io/istio-testing/install-cni:1.5-dev

这样即可完成对 install-cni 镜像的下载,将 k8s 中的拉取镜像策略修改为 ifnotpresent 或者 never即可。

四、将镜像 push 到阿里云

将本地镜像 push 到阿里云,首先需要将本地镜像的 tag 进行修改:

docker tag [imageid] registry.cn-hangzhou.aliyuncs.com/ops-docker/istio:[镜像版本号]

接下来 push 镜像:

docker push registry.cn-hangzhou.aliyuncs.com/ops-docker/istio:[镜像版本号]

到此这篇关于详解使用阿里云镜像仓库构建国外docker镜像的文章就介绍到这了,更多相关阿里云构建国外docker镜像内容请搜索www.887551.com以前的文章或继续浏览下面的相关文章希望大家以后多多支持www.887551.com!

(0)
上一篇 2022年3月22日
下一篇 2022年3月22日

相关推荐