搭建docker私服的几种方法

搭建docker私服的几种方法

目录

使用docker registry

这是最简洁最原始的方式,使用docker官方的提供的registry来搭建私服。优点是纯净、简洁,缺点是没有可视化界面、没有权限验证模块。

安装和启动非常简单,只要执行下面这条指令就行

不出意外的话,私服就算已经启动好了。我们试着push一个镜像测试是否成功:

虽然说registry没有界面可看,但我们依然可以通过registry的api来查看私服上面有什么内容

  1. 查看私服上有什么镜像

    访问http://localhost:5000/v2/_catalog

    image-20190109012659554

  1. 查看指定镜像的标签

    访问http://localhost:5000/v2/myfirstimage/tags/list

    image-20190109012757048

registry未提供权限验证,那我们想要给它加权限验证,总不能让私服裸奔在公网上吧,那咋办呢?一般做法是,用nginx来代理registry,然后在nginx里面设置用户权限。关于如何在nginx上配置访问权限,建议参考nginx官方文档https://docs.nginx.com/nginx/admin-guide/security-controls/configuring-http-basic-authentication/

 

使用harbor

harbor是一个功能强大的企业级registry服务器,支持多项目管理、用户管理、日志查询等功能特性,提供了美观的前端管理页面。缺点是太重了,启动harbor意味着要启动将近10个服务,对机器配置有一定要求,下图是harbor包含的所有服务。

image-20190109024746700

具体如何安装这里就不再赘述,请参考官方主页https://github.com/goharbor/harbor

 

使用nexus

nexus是java阵营用来搭建maven私服最常用的开源工具,它的其他功能似乎被忽略。但其实它非常强大,不仅支持maven包的管理,也支持docker、pypi、yum、npm…私服的搭建。如果你要搭建多种包的私服,而且想把它集成在一个平台里,那nexus是一个相当不错的选择。笔者所在公司,就是用nexus来实现maven包、docker容器、pypi、nodejs包的管理的。

具体如何安装请参考https://help.sonatype.com/repomanager3/installation/installation-methods

 

使用第三方平台

上面提到的私服方式都是在自己服务器上搭建registry服务,需要自己维护管理。但如果你不想自己搭,那可以选择一些第三方的平台。这里我推荐阿里云的镜像容器服务,它支持私有仓库,而且免费。

image-20190109030402871