发布Docker镜像到阿里云容器仓库

admin
admin
2021-06-03
分享:

[YoYoMooc]发布Docker镜像到阿里云容器仓库

目录导航:

推荐内容:

  1. 将正在运行的容器保存为本地Docker镜像|Youtube(需科学上网)

  2. 发布Docker镜像到Dockhub容器仓库|Youtube(需科学上网)

封面

因为网络问题,下载速度比较慢,在国内有很多云服务厂商都推出了免费的公有和私有Docker仓库,让我们不再那么繁琐。

本文采用阿里云作为演示如果操作容器仓库,如果你还没有一台Linux云服务器,可以通过我的推广链接:

https://promotion.aliyun.com/ntms/yunparter/invite.html?userCode=hx9ksbv4

购买,我会得到一点优惠。

创建命名空间

请提前注册阿里云的账号,这个步骤我就不再演示了。首先我们需要创建一个属于自己的命名空间这个命名空间对应dockerhub的用户名。

阿里云docker的入口:https://cr.console.aliyun.com/cn-shanghai/instances/repositories

11-1

注意:一个账号最多可以创建 3 个命名空间命名。

在这里我创建了一个yoyosoft的命令空间进行演示。

然后切换到镜像仓库按钮,选择镜像仓库的所在地区,如下图,我选择了上海节点作为演示内容。

11-2

选择后,我们点击创建镜像仓库按钮,输入我们的仓库名称exampleapp,然后点击下一步,

11-4

11-5 如上图,我们选择采用本地仓库,推送到仓库的模式,而不是通过源代码编译,这样可以防止某些公司的代码安全策略。毕竟大多数的公司不允许你把代码托管到外网。

然后点击创建好的仓库exampleapp名称,进入仓库详情。 11-6

你可以在这里看到很多具体的仓库信息,授权管理、版本以及触发器等信息。 11-7

推送本地镜像到阿里云仓库

现在我们就需要推送本地镜像到阿里云的仓库了。

在推送之前,请配置你的容器登录的访问凭证。

11-7

登录阿里云Docker 仓库,输入以下命令:

我们在windows系统中,无须添加sudo参数,它是Linux的提权命令。


docker login --username=<用户邮箱> registry.cn-shanghai.aliyuncs.com

registry.cn-shanghai.aliyuncs.com是我当前在上海节点,请注意你选择的节点位置。

11-7

通过上一个章节我们将ltm0203/exampleapp推送到Dockerhub,我们已经知道了latest标记最好由我们手动声明。

我们输入以下命令,将现有的ltm0203/exampleapp镜像调整为阿里云镜像地址的镜像。


 docker tag ltm0203/exampleapp:latest registry.cn-shanghai.aliyuncs.com/yoyosoft/exampleapp:latest


 docker tag ltm0203/exampleapp:unchange registry.cn-shanghai.aliyuncs.com/yoyosoft/exampleapp:unchange
 
 docker tag ltm0203/exampleapp:changed registry.cn-shanghai.aliyuncs.com/yoyosoft/exampleapp:changed

输入docker image ls得到结果如下:

11-7

说明我们的符合阿里云地址的docker 镜像已经安装成功了。接下来,我们推送到阿里云的仓库即可。

输入以下命令:


docker push  registry.cn-shanghai.aliyuncs.com/yoyosoft/exampleapp:changed
docker push  registry.cn-shanghai.aliyuncs.com/yoyosoft/exampleapp:unchange
docker push  registry.cn-shanghai.aliyuncs.com/yoyosoft/exampleapp:latest

最后访问阿里云镜像仓库的版本中心,可以看到上传的镜像内容,如下图:

11-7

运行验证

现在可以通过docker run命令试着执行下。

 docker run -p 5000:80 --name aliyuneapp registry.cn-shanghai.aliyuncs.com/yoyosoft/exampleapp:changed

访问浏览器地址http://localhost:5000/,最后的运行结果:

12-6