从零开始学Kubernetes-8.如何发布镜像

161 阅读2分钟

上一节我们学习了如何创建一个新的镜像,现在来学习如何发布这个镜像到镜像仓库。

到目前为止,前面创建的镜像只存在于我们自己的电脑上。如果想要它可以在任何机器上都能运行的话,还需要将其推送到镜像仓库。本文不会介绍如何构建一个私有镜像仓库,这个知识点在后面学习到。

这里我们使用阿里云的镜像仓库进行演示,当然你也可以将镜像推送到Docker Hub(hub.docker.com/)。

1.创建个人镜像仓库

创建命名空间

首先进入阿里云的容器镜像服务页面

创建镜像仓库

管理镜像仓库

选择“管理”链接,跳转到如下页面:

可以看到阿里云已经为我们生成好了推送镜像的命令:

$ sudo docker login --username=david**** registry.cn-shanghai.aliyuncs.com

$ sudo docker tag [ImageId] registry.cn-shanghai.aliyuncs.com/david-ns01/test1:[镜像版本号]

$ sudo docker push registry.cn-shanghai.aliyuncs.com/david-ns01/test1:[镜像版本号]

2.推送镜像

现在将我们之前制作好的test1:latest镜像推送到镜像仓库

添加标签

先按阿里云的规范给test1:latest镜像添加一个新的tag:

sudo docker tag test1 registry.cn-shanghai.aliyuncs.com/david-ns01/test1:1.0

该命令会给同一个镜像再创建一个标签。通过docker images命令可以看到test1和registry.cn-shanghai.aliyuncs.com/david-ns01/test1两个标签指向的是同一个镜像ID。

登录镜像仓库

如果镜像仓库不是公开的话,还得先登录

sudo docker login --username=david*** registry.cn-shanghai.aliyuncs.com

推送镜像

sudo docker push registry.cn-shanghai.aliyuncs.com/david-ns01/test1:1.0

至此,我们已经成功的将一个镜像推送到仓库中,可以在如下页面看到刚刚推送的镜像:

推送成功后,这个镜像就可以被任何人使用了。以后应用每次都会运行在相同的环境中。如果在你的本机上能正常运行,那么在其他Linux机器上也能正常运行。完全不用担心宿主机是否安装了Node.js。事实上,即使安装了Node.js,应用程序也不会用到它,因为应用程序使用的是镜像里安装的Node.js。