【Docker学习教程系列】7-如何将本地的Docker镜像发布到远程仓库
在上一篇中,我们使用docker commit 命令,创建了一个带有vim的Ubuntu镜像。那么怎么将这个镜像分享出去呢?本文就来讲解如何将本地的docker镜像发布到远程仓库上。
1:本地镜像发布远程仓库流程:
拉取base镜像>>本地进行相关修改>>commit提交修改内容及tag>>使用命令(Dockerfile)将本地镜像提交到远程仓库远程镜像仓库或者是私服镜像仓库中>>拉取远程仓库镜像>>修改。这个流程循环。具体如下图:
2:镜像生成方法:
第一种方法就是 docker commit。使用commit命令生成本地镜像。这一个在上一篇commit实战中,已经详细讲解过,这里就不多说了。想要了解的请移步到:《Docker学习6-Docker镜像commit操作案例》,查看详情。
第二种方法,就是要使用到DockerFile了,这个也是我们以后会常用到的,这种方法,在后面高级篇中,会详细讲解,现在是在基础阶段,这里也不多少了,大家可以跟着凯哥一起一步一步学习。
3:将本地镜像推送到远程仓库远程仓库
注意:是先有命名空间,然后才能创建仓库的。仓库是归属于某个命名空间下的。
3.1:在个人实例>>仓库管理>>命名空间>>创建命名空间。然后输入命名空间的名称即可。可以把这个命名空间理解为咱们Java中的包名。具体操作如下图:
创建完成之后,把可以把默认仓库类型设置为公开的。设置成公共的,这样在组内就是共享的,同组能人员就可以直接从远程拉取镜像了。如同咱们的git一样,提交远程仓库后,其他人也可以拉取一样的道理。
点左侧导航栏中的镜像仓库>>全部命名空间>>选择需要创建仓库的命名空间>>创建镜像仓库。如下图:
3.2.2:创建镜像仓库
选择好命名空间后,点击创建镜像仓库按钮>>在弹出窗口中输入仓库名称、仓库了下、摘要等信息.
注意,仓库名称有限制:长度为2-64个字符,可使用小写英文字母、数字,可使用分隔符“_”、“-”、“.”(分隔符不能在首位或末位)
分为:CodeUp、云Code、GitHub、BitBucket、私有GitLab、本地仓库.非本地仓库的点击后,绑定账号之后,都可以在构建设置中,选择代码变更自动构建镜像功能。
因为本次,咱们是从本地仓库提交到远程仓库的,所以,咱们就选择本地仓库,然后点击创建镜像仓库。如下图:
提交之后,我们可以看到有一堆的命令。先登录、可以从registry中拉取镜像、将镜像推送到Registry等命令。具体如下图:
本次,实战案例,我们是要将镜像推送到Registry上。所以,我们就选择3模块的三条命令即可。
4:将本地镜像推送到远程仓库
通过上面第三步骤,我们已经获取到将本地镜像推送的远程仓库的命令了。接下来,我们就来进行实战操作。
docker login --username=修改成你自己的账号 registry.cn-hangzhou.cs.com
docker tag [ImageId] registry.cn-hangzhou.cs.com/kaigejava/my_kaigejava:[镜像版本号]
docker push registry.cn-hangzhou.cs.com/kaigejava/my_kaigejava:[镜像版本号]
5:将远程仓库上的镜像下载到本地
1:登录;2:从Registry中拉取镜像。直接从页面中复制对应的命令即可。
拉取前,我们先来看看,现在我们本地已经有的镜像,使用:docker images命令
执行从远程拉取镜像命令:
命令公式:
docker pull registry.cn-hangzhou.cs.com/kaigejava/my_kaigejava:[镜像版本号]
拉取完成之后,我们再来查查本地现有的镜像,来验证是否拉取成功。
我们可以看到,已经有我们提交的远程仓库镜像了。说明,本地拉取成功。
拉取下来之后,我们来运行下镜像,验证,我们在上一篇文章中添加的vim命令是否已经存在这个镜像中。使用到的命令公式:
vim命令可以正常使用了。说明,从远处拉取到的镜像已经包含了添加的vim命令。
好了,至此,我们已经将本地镜像提交到远程仓库及从远程仓库拉取镜像操作了。在下一篇文章中,凯哥将详细介绍,怎么将本地仓库提交到本地私服上去。
直通车,本系列教程已发布文章,快速到达,《Docker学习系列》教程已经发布的内容如下:
【图文教程】Windows11下安装Docker Desktop
【填坑】在windows系统下安装Docker Desktop后迁移镜像位置
【Docker学习系列】Docker学习1-docker安装
【Docker学习系列】Docker学习2-docker设置镜像加速器
【Docker学习系列】Docker学习3-docker的run命令干了什么?docker为什么比虚拟机快?
【Docker学习系列】Docker学习2-常用命令之启动命令和镜像命令
【Docker学习系列】Docker学习系列3:常用命令之容器命令
【Docker学习系列】Docker学习4-常用命令之重要的容器命令
【Docker教程系列】Docker学习5-Docker镜像理解
【Docker教程系列】Docker学习6-Docker镜像commit操作案例
大家好,我是凯哥Java(kaigejava),乐于分享,每日更新技术文章,欢迎大家关注“凯哥Java”,及时了解更多。让我们一起学Java
- 点赞
- 收藏
- 关注作者
评论(0)