Docker基础-10-如何发布一个镜像到私有的docker仓库

本篇来介绍如何搭建自己的Docker registry,用来存储和分发自己私人的镜像文件。前面一篇使用docker push默认是发布镜像到hub.docker.com这个公有的镜像站点,这篇主要介绍私有镜像站点的在本地的搭建过程。

前面我们只准备了一台linux虚拟机用来练习和学习Docker,一般情况需要再使用一台机器作为私有仓库使用,这里我们使用同一台机器。

 

拉取docker registry镜像

我们先启动docker服务,然后使用docKer pull registry拉取一个镜像到本地。

看看这个镜像多大

启动registry

启动registry实际上就是启动一个容器,这个registry其实和hub.docker.com是一样的功能,只不过这个私有的registry是供给公司内部使用,不对外访问罢了。使用下面的命令就启动了registry服务(运行在一个容器中)。

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

 

上面可以看到两个端口都是5000,简单说一下,一个是linux虚拟机也就是0.0.0.0:5000,这个5000是这个虚拟机本身的端口,第二个是5000是这个registry容器里的端口是5000.。容器的名称叫registry,使用的image是registry:latest 

 

发布镜像到私有registry

1) 我的机器上有个centos6.8的镜像,我们要通过docker tag将该镜像标志为要推送到私有仓库

# docker tag centos:6.8 127.0.0.1:5000/centos68

2) 接下来,我们运行docker push将centos:6.8镜像push到我们的私有仓库中

3) 现在我们可以查看我们本地某个目录下已经有了刚推送上来的centos。我们也在浏览器中输入http://192.168.66.152:5000/v2/_catalog,正常返回如下数据


4) 现在我们可以先将我们本地的docker rmi 127.0.0.1:5000/centos68和docker rm  centos:6.8先删除掉

5) 然后使用docker pull从我们的私有仓库中获取hello-world镜像

6) 问题来了,push到registry的镜像在哪呢?

我通过find找到了

为了防止默认的存放,在搭建的时候需要注意下:

Docker 官方提供了一个搭建私有仓库的镜像 registry ,只需把镜像下载下来,运行容器并暴露5000端口,就可以使用了。

docker pull registry:2
docker run -d -v /opt/registry:/var/lib/registry -p 5000:5000 --name myregistry registry:2

Registry服务默认会将上传的镜像保存在容器的/var/lib/registry,我们将主机的/opt/registry目录挂载到该目录,即可实现将镜像保存到主机的/opt/registry目录了。

 

发布了457 篇原创文章 · 获赞 151 · 访问量 66万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 精致技术 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览