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自动记录,并可被管理员进行用户分析。
二:安装环境:(最好是最新版本的)
2.轻松管理用户: 在 Portus 映射你的公司,可以定义任意数量的 Team,并从 Team 添加和移除用户。Team 有三种类型的用户:Viewers ,只能 pull 镜像;Contributors,可以 push/pull 镜像;Owners,类似 contributors,但可以从 team 添加或移除用户。
3.搜索: Portus 提供你的私人注册表的内容的预览,同时有一个快速搜索镜像的功能。
4.)审计: 用户的所有相关事件都会被Portus自动记录,并可被管理员进行用户分析。
docker
docker-compose
ubuntu
三:Portus安装前准备
1,更换gem源
gem sources --add https://gems.ruby-china.org/ --remove https://rubygems.org/
更新缓存
gem sources -u
四:Portus安装
1,从github上获取Portus源码
git clone https://github.com/SUSE/Portus.git
2,解压Portus
tar -zxvf Portus.tar.gz
3,修改相应的配置文件
cd Portus
vim Gemfile.lock
将Gemfile.lock第一行的 https://rubygems,org 修改为https://gems.ruby-china.org
4,执行compose文件,进行构建安装
./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配置文件
vim /lib/systemd/system/docker.service
将 --insecure-registry 192.168.223.132:5000 加到ExecStart的后面
6,重启docker
systemctl daemon-reload
systemctl restart docker
7,重启portus容器
docker start portus_db_1 portus_web_1 portus_crono_1 portus_registry_1
8,查看portus容器启动情况
docker ps
9,这时就可以打开Portus,使用界面查看docker images的情况了,打开浏览器,输入:
192.168.223.132:3000
第一次进入portus界面输入的username就是超级管理员
username:test password:testtest(最少要求8个字符) |
Portus的登录界面需要创建用户名和密码,然后进行registry的设置
之后一一创建,但是要将Namespace添加到Team中
11,客户端机器修改配置文件
vim /lib/systemd/system/docker.service
这时所有的配置就基本完成了
12,上传镜像测试
先登录,再测试
docker login 192.168.223.132:5000
username: test
password: testtest
如果登录成功会显示 login success
13,从docker源下载hello-world镜像来测试一下
docker pull hello-world
docker tag hello-world 192.168.223.132:5000/test/hello-world
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镜像,从私服下载,看是否下载成功
docker rmi 192.168.223.132;5000/test/hello-world
docker pull 192.168.223.132:5000/test/hello-world
完美,portus管理docker registry私服到此结束
文章根据 http://dockone.io/article/1151 再加上自己的实际情况得出的教程,菜鸟一枚,不喜勿愤