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 并提交到阿里云仓库

相关推荐
小阳睡不醒3 小时前
小白成长之路-部署Zabbix7(二)
android·运维
杰克逊的日记3 小时前
GPU运维常见问题处理
linux·运维·gpu
caolib3 小时前
无需云服务器的内网穿透方案 -- cloudflare tunnel
运维·服务器·内网穿透·tunnel·cloudflared
奇舞精选3 小时前
k8s基本概念初探
运维
誰能久伴不乏4 小时前
Linux系统调用概述与实现:深入浅出的解析
linux·运维·服务器
程序员学习随笔4 小时前
Linux进程深度解析(2):fork/exec写时拷贝性能优化与exit资源回收机制(进程创建和销毁)
linux·运维·服务器
-SGlow-4 小时前
MySQL相关概念和易错知识点(2)(表结构的操作、数据类型、约束)
linux·运维·服务器·数据库·mysql
代码改变世界ctw5 小时前
Linux内核设计与实现 - 第14章 块I/O层
linux·运维·服务器
Dreams_l5 小时前
网络编程2(应用层协议,传输层协议)
运维·服务器·网络
勇哥的编程江湖6 小时前
starrocks官网docker部署mysql无法连接
运维·docker·容器