Docker 镜像的发布过程

搭建了一个镜像后(例如搭建好了一个开发环境),如果想要供其他人使用,此时就可以发布镜像到镜像仓库。

本文就试着将本地的镜像,发布到阿里云。

发布流程

示意图:

首先 Images 可以由容器提交的方式生成,也可以通过 Dockerfile 的方式(后面会讲),然后通过 push 等操作提交到镜像仓库。(有点像 Git 里面的 git pull​ 和 git push​ )

这个镜像仓库可以是公共的(类似 GitHub),也可以是私有的(例如公司内部搭建的,类似 GitLab)

这里我们以上一节提交的带 vim 的 Ubuntu 镜像为例,push 到阿里云仓库上

创建阿里云镜像仓库

登录阿里云控制台,然后选择容器镜像服务:

​​

创建一个个人版的实例:

然后创建命名空间(类似 Java 中的包名,这里取名为 peterjxl):

创建仓库:先选择命名空间,然后点击创建镜像仓库

填写仓库的一些信息:

选择本地仓库,然后就创建成功了

创建成功后,会有操作指南(注意,每个人的命令都是不同的,要用自己的命令)

推送镜像

接下来就可以推送镜像了。注意:每个人的命令都是不同的,不要直接复制粘贴执行,得替换为自己的仓库的推送命令。

根据指南,推送镜像的命令如下:

shell 复制代码
$ docker login --username=peterjxl registry.cn-xxxxx.aliyuncs.com
$ docker tag [ImageId] registry.cn-hangzhou.aliyuncs.com/peterjxl/peterjxl_repository:[镜像版本号]
$ docker push registry.cn-hangzhou.aliyuncs.com/peterjxl/peterjxl_repository:[镜像版本号]

先登录(注意要输入密码,之前创建的时候会设置),登录完后会出现 Login Succeeded 的提示,表示登录成功

然后设置一个 tag:

shell 复制代码
$ docker tag 0d0cf3b0417f registry.cn-hangzhou.aliyuncs.com/peterjxl/peterjxl_repository:1.1

然后 push:

shell 复制代码
$ docker push registry.cn-hangzhou.aliyuncs.com/peterjxl/peterjxl_repository:1.1

下载镜像

接下来我们就从阿里云仓库中,下载镜像到本地了。指南是这样写的:

  1. 登录阿里云 Docker Registry

    $ docker login --username=peterjxl registry.cn-hangzhou.aliyuncs.com

用于登录的用户名为阿里云账号全名,密码为开通服务时设置的密码。

您可以在访问凭证页面修改凭证密码。

  1. 从 Registry 中拉取镜像

    $ docker pull registry.cn-hangzhou.aliyuncs.com/peterjxl/peterjxl_repository:1.1

我们可以先删除本地所有镜像,然后再下载镜像,可以看到下载成功了:

shell 复制代码
$ docker rmi 0d0cf3b0417f
$ docker pull registry.cn-hangzhou.aliyuncs.com/peterjxl/peterjxl_repository:1.1

$ docker images
REPOSITORY                                                       TAG       IMAGE ID       CREATED          SIZE
registry.cn-hangzhou.aliyuncs.com/peterjxl/peterjxl_repository   1.1       0d0cf3b0417f   15 minutes ago   187MB

最后

课堂作业:使用 Centos 镜像,安装 vim 并提交到阿里云仓库

相关推荐
昌sit!1 小时前
K8S node节点没有相应的pod镜像运行故障处理办法
云原生·容器·kubernetes
追风林2 小时前
mac 本地docker-mysql主从复制部署
mysql·macos·docker
一坨阿亮2 小时前
Linux 使用中的问题
linux·运维
A ?Charis4 小时前
Gitlab-runner running on Kubernetes - hostAliases
容器·kubernetes·gitlab
城南vision4 小时前
Docker学习—Docker核心概念总结
java·学习·docker
wclass-zhengge4 小时前
Docker篇(Docker Compose)
运维·docker·容器
李启柱4 小时前
项目开发流程规范文档
运维·软件构建·个人开发·设计规范
北漂IT民工_程序员_ZG5 小时前
k8s集群安装(minikube)
云原生·容器·kubernetes
力姆泰克5 小时前
看电动缸是如何提高农机的自动化水平
大数据·运维·服务器·数据库·人工智能·自动化·1024程序员节
BPM_宏天低代码5 小时前
低代码 BPA:简化业务流程自动化的新趋势
运维·低代码·自动化