docker私有仓库搭建 使用Portus管理docker registry 私有仓库

一:Portus介绍
    Portus(by SUSE)是用于Docker Registry API(V2)的开源和授权工具,最低要求registry版本是2.1。它可以作为授权服务器和用户界面,用于新一代的 Docker Registry。具有以下优点:
1.安全:Portus 实现了最新的Docker Registry中定义的新的授权方案。它允许对你所有的镜像进行细颗粒度控制,你可以决定哪个用户和团队可 push/pull 镜像。

2.轻松管理用户: 在 Portus 映射你的公司,可以定义任意数量的 Team,并从 Team 添加和移除用户。Team 有三种类型的用户:Viewers ,只能 pull 镜像;Contributors,可以 push/pull 镜像;Owners,类似 contributors,但可以从 team 添加或移除用户。 

3.搜索: Portus 提供你的私人注册表的内容的预览,同时有一个快速搜索镜像的功能。 

4.)审计: 用户的所有相关事件都会被Portus自动记录,并可被管理员进行用户分析。


二:安装环境:(最好是最新版本的)
    docker
    docker-compose
    ubuntu

三:Portus安装前准备
1,更换gem源
 
   
  1. gem sources --add https://gems.ruby-china.org/ --remove https://rubygems.org/
  2. 更新缓存
  3. gem sources -u
四:Portus安装
1,从github上获取Portus源码
 
   
  1. git clone https://github.com/SUSE/Portus.git
2,解压Portus
 
    
  1. tar -zxvf Portus.tar.gz
3,修改相应的配置文件
 
    
  1. cd Portus
  2. vim Gemfile.lock
将Gemfile.lock第一行的  https://rubygems,org 修改为 https://gems.ruby-china.org 

4,执行compose文件,进行构建安装
 
     
  1. ./compose-setup.sh -e 192.168.223.132
     192.168.223.132是自己电脑IP

 由于Portus在安装过程中需要下载几个依赖的镜像包,例如:Portus安装依赖MariaDB,portus——web.tar,rails4.2.2.tar,Registry.2.1.1.tar,所以会比较慢

注意:docker-compose.yml.template文件中包含了web端口和挂载volums等参数,如有特殊要求可以在这里修改

Portus中  ./compose-setup.sh -e 192.168.223.132 执行完之后会出现以下显示

 到此,Portus的安装已经完成。

但是配置还没有完成,修改修改docker的配置文件
5,修改docker配置文件
 
      
  1. vim /lib/systemd/system/docker.service
将  --insecure-registry 192.168.223.132:5000 加到ExecStart的后面

6,重启docker
 
      
  1. systemctl daemon-reload
  2. systemctl restart docker
7,重启portus容器
 
      
  1. docker start portus_db_1 portus_web_1 portus_crono_1 portus_registry_1
8,查看portus容器启动情况
 
      
  1. docker ps

9,这时就可以打开Portus,使用界面查看docker images的情况了,打开浏览器,输入:
 
      
  1. 192.168.223.132:3000

第一次进入portus界面输入的username就是超级管理员
username:test
password:testtest(最少要求8个字符)
10,登录配置程序
Portus的登录界面需要创建用户名和密码,然后进行registry的设置

之后一一创建,但是要将Namespace添加到Team中
11,客户端机器修改配置文件
 
      
  1. vim /lib/systemd/system/docker.service

这时所有的配置就基本完成了

12,上传镜像测试
    先登录,再测试
 
      
  1. docker login 192.168.223.132:5000
  2. username: test
  3. password: testtest
如果登录成功会显示  login success
13,从docker源下载hello-world镜像来测试一下
 
      
  1. docker pull hello-world
  2. docker tag hello-world 192.168.223.132:5000/test/hello-world
  3. docker push 192.168.223.132:5000/test/hello-world
注意:
docker tag hello-world 192.168.223.132:5000/test/hello-world 中的红色字体test是之前登录是的username,打tag的时候一定不能漏掉
14,查看portus管理界面镜像是否显示

15.删除刚才打的tag镜像,从私服下载,看是否下载成功
 
      
  1. docker rmi 192.168.223.132;5000/test/hello-world
  2. docker pull 192.168.223.132:5000/test/hello-world

完美,portus管理docker registry私服到此结束

文章根据 http://dockone.io/article/1151 再加上自己的实际情况得出的教程,菜鸟一枚,不喜勿愤