使用阿里云镜像仓库构建国外 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
echo "设置阿里云镜像仓库" mkdir /etc/yum.repos.d/bak && mv /etc/yum.repos.d/*.repo /etc/yum ...
- Jib插件构建镜像push到阿里云镜像仓库
一.前言 Jib:Google开源的Java容器化工具 可作为插件快速集成到项目中,构建镜像,实现 Java 应用容器化 下面贴出一张从网上看到的Jib描述~ 二.利用Jib插件构建镜像push到阿里 ...
- 构建一个java环境的centos系统镜像并上传到阿里云镜像仓库
编辑dockerfile 文件 FROM centos MAINTAINER zhaoweifeng ENV LANG en_US.UTF-8 RUN /bin/cp /usr/share/zonei ...
- Docker通过阿里云镜像仓库使用Gitlab_CI部署SpringBoot项目
Docker.Gitlab.阿里云镜像仓库.SpringBoot的相关安装.搭建这里就不讲了. Linux 安装 Docker :https://www.cnblogs.com/linnuo/p/15 ...
- 通过docker把本地AspNetCore WebAPI镜像打包到阿里云镜像仓库并在centos部署
在centos上安装docker # step 1: 安装必要的一些系统工具 sudo yum install -y yum-utils device-mapper-persistent-data l ...
- 两种github action 打包.Net Core 项目docker镜像推送到阿里云镜像仓库
两种github action 打包.Net Core 项目docker镜像推送到阿里云镜像仓库 1.GitHub Actions 是什么? 大家知道,持续集成由很多操作组成,比如抓取代码.运行测试. ...
- 使用镜像仓库托管自己构建的Docker镜像
自己构建的Docker镜像,默认存储在本机中,Docker有提供某些方式分享这些镜像,但不是主流的镜像分享方式,也有违于开源社区的共享精神. 本文介绍如何使用GitHub托管Dockerfile:使用 ...
- 构建自定义docker镜像,上传至docker hub
docker 优势 (外部参考) Docker 让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后 发布到任何流行的Linux机器上,便可以实现虚拟化.Docker改变了虚拟化的方 式,使 ...
- 宝塔面板 + Rancher + 阿里云镜像仓库 + Docker + Kubernetes,添加集群、部署 web 应用
目录 一,安装宝塔面板(V 6.8) 二,使用宝塔安装 Docker,配置阿里云容器服务 三,安装 Rancher (Server) 四,管理 Rancher.添加集群 五,添加 Rancher 应用 ...
随机推荐
- LINQ中的OrderBy实现按照两个字段升序、降序排序操作
在公司或许有这种需求,先根据第一个某个字段按照升序排序,然后如果相同,在按照第二个某个字降序排序,我们该怎么去实现呢? 现在来教教大家分别使用Labmda和LINQ进行这种操作. 1.先按照第一个字段 ...
- Python-设置文件缓冲类型
案例: 将文件内容写入到硬件设备时候,使用系统调用,这类IO操作时间长,为了减小IO操作,通常会使用缓冲区(有足够多数据才能调用). 文件缓冲行为分为:全缓冲,行缓冲,无缓冲 如何解决? open(' ...
- Linux系统编程 —线程属性
在之前的章节中,我们在调用pthread_create函数创建线程时,第二个参数(即线程属性)都是设为NULL,即使用默认属性.一般情况下,使用默认属性已经可以解决我们开发过程中的大多数问题. 但是, ...
- ThinkPHP 5 生命周期
前段时间用TP5开发了一个小程序,就熟悉了一下TP5.TP5是TP框架最新的一个版本,与以前的3还是有很大的区别,有人说和laravel比较靠近,其实也还好,每个人都有自己不同的看法,只要是选择一个自 ...
- NMOS和PMOS区别
在很多电路途中会出现NMOS和PMOS管,因为不是中文那么直接,都说管压降之类的,但其实它的导通很重要以及区别,关系到你点亮电子元件> 参考: 1.https://blog.csdn.net/l ...
- 《C++primerplus》第12章“队列模拟”程序
这个程序刚开始学有很多难点,个人认为主要有以下三项: 1.链表的概念 2.如何表示顾客随机到达的过程 3.程序执行时两类之间的关系,即执行逻辑 关于第一点,书上的图解释得比较清楚了,把"空指 ...
- 阅读源码,从ArrayList开始
前言 为啥要阅读源码?一句话,为了写出更好的程序. 一方面,只有了解了代码的执行过程,我们才能更好的使用别人提供的工具和框架,写出高效的程序.另一方面,一些经典的代码背后蕴藏的思想和技巧很值得学习,通 ...
- 你知道CPU结构也会影响Redis性能吗?
啦啦啦,我是卖身不卖艺的二哈,ε=(´ο`*)))唉错啦(我是开车的二哈),我又来了,铁子们一起开车呀! 今天来分析下CPU结构对Redis性能会有影响吗? 在进行Redis性能分析的时候,通常我们会 ...
- Codeforces Global Round 11 个人题解(B题)
Codeforces Global Round 11 1427A. Avoiding Zero 题目链接:click here 待补 1427B. Chess Cheater 题目链接:click h ...
- 从Linux源码看Socket(TCP)的bind
从Linux源码看Socket(TCP)的bind 前言 笔者一直觉得如果能知道从应用到框架再到操作系统的每一处代码,是一件Exciting的事情. 今天笔者就来从Linux源码的角度看下Server ...