docker提交和拉取自定义镜像、自行创建docker私有库

1.使用场景

公司正常都会搭自己的git仓库,像gitlab,gitea之类的,但是docker仓库不一定有,没有的话可能自己装运行环境,但如果有的话,不会用多可惜。

2.环境

我们模拟以下公司环境搭建,运用其实就是会在这些运行环境上面加一些插件,多一些配置;

比如,获取不单单只是下载了rabbitmq,还配置rabbitmq的延迟队列插件,就是这么个意思。

我的运行环境:

VMware fusion 虚拟机上跑centos 7 arm 架构下  跑docker ,再拉取镜像运行容器之类的

2.1 docker环境运行正常

以下这台我是专门拷贝了一台新的仅有docker环境的centos7 作为docker 仓库,模拟公司的镜像仓库

3.提交自定义镜像 (到本地)

 

 从上文可见,这大小明显大了不只一点,为什么一个docker镜像的Ubuntu那么轻,而一个镜像iso文件好几G,也不是没有道理的,轻  轻在,只有基本的命令文件目录等。

至于docker的提交命令

docker commit -m="提交的信息" -a="author name 作者名" 容器ID  目标镜像名:版本(或者叫标签)

注意1:我们是对容器进行修改配置成一个更为强大的容器,并将其打包成镜像,而不是对镜像进行操作覆盖为另外的镜像,这一点需要注意!! 

注:其实这个操作跟git提交到本地仓库的命令有一些像,git有pull,push ,docker 当然也有啦

 但这只是在本地呀,我们毕竟是要让别人用的,是不是应该推送到到一个公共的仓库呢,接下来我们会进行git-github-gitee与 docker-dockerhub-aliyun 类比,

代码提交我们提交到github,可以,但是慢,所有有的人会放到gitee

docker提交到dockerhub,可以,但是慢,所有有的人提交到aliyun,可以理解

aliyun官网: 开放云原生应用-云原生(Cloud Native)-云原生介绍 - 阿里云

创建命名空间 -- 创建仓库---提交到本地仓库---获取脚本命令

 命令1: 

 命令2 、3:

 主要的含义就是声明

1.推到哪里的仓库:  阿里云的

2.要推哪一个上去 : imagesId是xxx的那个

3.推送

        

4.拉取自定义镜像

现在呢,来了一个新员工,开发组长给了地址,然后开始一顿操作

#登录
docker login --username=linshaozheng07 registry.cn-hangzhou.aliyuncs.com

#pull
docker pull registry.cn-hangzhou.aliyuncs.com/linsz-aliyun/my-ubuntu:1.0

 作为新员工,我们再开一个centos-7

登录,拉取代码

 能用,还挺好用 !!!不错不错!!!

我的名字叫my-ubuntu可能会让人有歧义,难道只能存放一个镜像?

注意:我们在aliyun 上面叫镜像仓库,虽然叫仓库,但是这个镜像仓库如果存放多个镜像会怎么样呢?     可以,但是要区别版本号

仓库,仓库,git仓库只要.git声明在外面,里面的东西管你是一个java项目还是两个java项目,无所谓

而,docker 仓库有一点点不一样,但还是可以存多个镜像的

我们测试一下:在docker repository  中 (以下是错误版本)

如果我们直接docker tag 两个不同的镜像,同时发,则最后一个有效,相当于前面的都被覆盖了, 则在aliyun上面只有各一个d4d的镜像redis

如果分开发,先发一个,push一下,再发一个,push一下,则依旧是最后这个有效,并且因为我们每次push到aliyun,我们本地也会保存一份像

的镜像,然后这种镜像由于我们的操作不当,出现了传说中的 虚悬镜像, 那个TAG 是<none>,这种需要注意。

正确的做法: 

每次上传,修改一个唯一的id,就是那个 linsz-sources:1.1  的那个数字 

在aliyun上面,则我们可以看到,二者都能存活下来

巧的是,这个镜像id,它都没有修改,都是同一个。

我们在新员工的docker上测试一下能不能用?

为了测试正确,我把原来的镜像一键删除了,大家慎用,除非你的镜像没有用

 

 tag为1.2的是redis

 很好,都能正常使用!!!

如果你嫌弃镜像这一坨太长了,改个名嘛

 

 如 

 它改名,因为是有传imageId参数,但是我有好多个imageId一样的,它怎么知道改那个,所以就又搞了一个同imageId,名字叫my-ubuntu的,可以,很强!!!

5.自行创建docker仓库

上文上传到aliyun,我们能不能搭建自己的docker 仓库呢,当然可以

相当于,在docker上面搭建docker registry (仓库),把配置好的docker container 提交,并且push 到该仓库中,供他人调用

5.1 安装

5.2 启动

 

 5.3 测试

在自己的电脑测,不要在虚拟机上测,有时候虚拟机没有curl 命令,正常来讲都ping得通,应该没啥问题

5.4 提交

我们使用那个加了vim的ubuntu上传 

修改,以支持http推送镜像 

 记得重启虚拟机centos

5.5 推送 

 5.6 测试

5.7 新员工拉取

加http放行校验 

 重启centos-7

 完全能用!!!!!

当然,如果想配置注册表的UI界面,也能搞

docker hub registry UI

 但是可能有的版本不支持,

至此,完结  

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

linszjava@gmail.com

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值