使用docker快速构建一个镜像私有仓库!

在上一篇文章去Docker Hub拉取MySQL镜像等了半天,所以这篇来介绍一下怎么快速搭建一个docker的镜像私有仓库,上一篇也提到为什么要自己搭建镜像私有仓库,因为虽然目前Docker官方提供了一个公有的Docker镜像仓库,用户只需要自行注册一个账号即可使用,但是对于企业用户来说,公有仓库是远远无法满足需求的,无论从镜像的安全性,还是从下载镜像的速度,都让使用Docker的企业用户必须搭建自有的Docker私有仓库。

介绍一下Docker Registry(仓库),简单的理解,它是一个用于集中存放Docker镜像的地方。Docker Registry包括之前的V1,和现在的V2两个版本,v1和v2不是简单的版本升级,而是两个独立的项目,v1版本使用python开发,v2版本使用go开发,v2版本在安全性和性能方面都有了很大提升,v2版本支持后端插件化的存储,镜像可以存放在包括s3、azure、swift、oss、gcs、本地文件系统和内存中,极大的提供了便利。同时v2版本的Docker仓库,在pull和push的时候都支持断点,和多线程传输,以提高性能。具体的差别还有很多,可以参考官方文档。

v2版本Docker仓库有什么不好吗?最大的问题就是和v1不兼容。目前有些API还不够完善,对于环境中既有Docker 1.6之前,又有Docker 1.6之后版本的用户来说,就需要同时准备两个Docker仓库,并且做到两个版本仓库之间镜像的相互转换和同步。

本文拉取的registry是latest版的,目前的latest版本就是2.6.0版,所以本文是基于v2版本的。同时由于私有仓库有认证和不认认证的,这里为了方便就不进行认证的方式部署,后续如果有时间再填一下认证方式的坑~~~


1.拉取registry镜像

在我们上一篇的基础上,已经安装好了docker,所以就直接输入 docker pull registry,这里镜像没有加标签的话就默认是latest,如下图:

使用docker快速构建一个镜像私有仓库!

2.启动registry容器

很好拉取好了registry镜像之后我们就可以直接启动容器了,只需要输入docker run --restart=always -d -p 5000:5000 -v /opt/data/registry:/tmp/registry registry:latest如下图:

使用docker快速构建一个镜像私有仓库!

很好这样我们就将docker的私有仓库搭建好了,下面我们来验证一下该仓库是否可用。


3.测试镜像仓库

这时需要修改docker的配置文件,添加上docker的私有仓库的地址,首先使用ip a 查到自己的本地的ip,比如我这里是192.168.1.101,而我们regristry的容器映射到主机上的端口是5000,所以我们在配置文件里面的OPTIONS里面添加上--insecure-registry 192.168.1.101:5000,保存好之后再将docker重新启动一下,service docker restart,如下图:

使用docker快速构建一个镜像私有仓库!

使用docker快速构建一个镜像私有仓库!

很好这时我们将其中一个镜像比如registry打个标签,docker tag docker.io/registry:latest 192.168.1.101:5000/yunzhongmuge/registry:latest 这个命令是将docker.io/registry:latest这个镜像改一下名称变为192.168.1.101:5000/yunzhongmuge/registry:latest;然后将其push到我们刚刚的启动的私有仓库,如下图:

使用docker快速构建一个镜像私有仓库!

非常好!这时我们的镜像就已经推送到私有仓库里面了,后面我们需要拉取的话我们只需要将docker的配置文件添加上这个私有仓库的地址就可以拉取了,比如我在另外一台虚拟机里面进行拉取,如下图:

使用docker快速构建一个镜像私有仓库!

使用docker快速构建一个镜像私有仓库!



May you share freely, never taking more than you give.


都看到这里,那就关注、评论、收藏、转发一下呗!谢谢!


分享到:


相關文章: