在我们普通的docker pull 的过程,都是从hub.docker.com 进行镜像的拉取.

但是这个有一个问题,在公司的内部项目中如果push 上去,那么就会被其他的人看到

这个显然是不允许的.

就好比 很多公司不会把项目代码放到github上面一样,他们会在自己的内网搭建gitlab服务器

好在docker已经考虑到这一点,把这些都为用户弄好了,可喜的是,这个docker私有的仓库也已经镜像化了,所以用起来非常的方便.

唯一的缺点就是这个私有仓库没有软件界面

不过没有界面并不一定是坏事,至少占用资源少啊

1.首先拉取私有仓库的docker 镜像

docker pull registry

2.运行这个镜像

docker run -d -p 5000:5000 --restart always --name registry registry:latest

镜像运行起来,相当于一个没有页面的web服务器 ,他支持镜像的查询,拉取,推送等功能

3.下面演示一个 简单的docker镜像的本地私有仓库的推送,以下图的 mydocker 和hello 为例

在这里插入图片描述

要推送的镜像可以docker build 重新打,也可以用现有的

如果是现有的先改一个名字
比如 上图中的hello

docker  tag hello 127.0.0.1/hello

如果是重新打就是

docker build -t 127.0.0.1/xxx .

打好镜像之后,就可以push了

比如我push 2个镜像上去

docker push 127.0.0.1:5000/hello

在这里插入图片描述

docker push  127.0.0.1:5000/mydocker

在这里插入图片描述

这样就都push 上去了

但是docker 的这个没有向gitlab那样有界面,怎么知道是否push 成功了呢?

2种办法

一种是直接本地把镜像删除了,然后再docker pull 镜像 ,如果本地有了,那就证明是ok 的了

还有一种办发就是查询api,虽然私有的仓库没有界面,但是docker 还是准备了一套api的

在浏览器中输入

ip:5000/v2/_catalog

ip为运行docker registry 的主机ip

看下返回结果
在这里插入图片描述
上图可以看到 ,我已经push 上去的两个镜像

这样就说明本地的镜像仓库搭建ok了.

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐