docker搭建本地私有仓库
在我们普通的docker pull 的过程,都是从hub.docker.com 进行镜像的拉取.但是这个有一个问题,在公司的内部项目中如果push 上去,那么就会被其他的人看到这个显然是不允许的.就好比 很多公司不会把项目代码放到github上面一样,他们会在自己的内网搭建gitlab服务器好在docker已经考虑到这一点,把这些都为用户弄好了,可喜的是,这个docker私有的仓库也已经...
在我们普通的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了.
更多推荐
所有评论(0)