欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  互联网

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

程序员文章站 2022-03-04 23:22:10
使用阿里云镜像仓库下载国外镜像在日常使用 docker 或 k8s 的过程中,经常会需要到国外的网站中下载镜像,但是有些网站在国内是无法访问的。对于这个问题可以使用阿里云提供的镜像仓库进行下载,然后...

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

在日常使用 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 中保持一致

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

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

 三、拉取镜像

镜像构建成功后,即可在 “镜像版本” 选项卡中看到构建好的镜像,接下来将镜像 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镜像内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!