使用阿里云镜像仓库下载国外镜像
在日常使用 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!