之前搭建了Shipyard窗声,可以對(duì)鏡像、容器笨觅、Node進(jìn)行管理耕腾,但在添加registry時(shí)出錯(cuò)啦见剩。
試錯(cuò)1:剛開始以為是自己registry搭建的方式不對(duì)扫俺,沒(méi)有用ssl導(dǎo)致,改成ssl方式后空民,在Shipyard中添加倉(cāng)庫(kù)失敗吭狡。
試錯(cuò)2:以為自己安裝Shipyard的方式不對(duì)衔彻,按官網(wǎng)文檔-加上了TLS_CERT_PATH黎休,但是Shipyard中添加倉(cāng)庫(kù)失敗涛癌。
試錯(cuò)3:在網(wǎng)上查到說(shuō)Shipyard只支持registry v1 不支持registry v2,如要支持v2需自己重編譯 Shipyard拳话。
于是開始了坑人的重編譯之旅,結(jié)果還是在容器中 運(yùn)行docker被埋啦弃衍。
開始轉(zhuǎn)方向,不用Shipyard管理registry啦镜盯。
轉(zhuǎn)方向1:Nginx+ssl+registry v2,網(wǎng)上有很多這類的安裝方式速缆,只不過(guò)將registry命令形式 換成 頁(yè)面展示形式,并不具有管理工具剧董,于是拋棄了它破停。
轉(zhuǎn)方向2:Portus翅楼,看介紹很強(qiáng)大
Portus 是用于 Docker RegistryAPI(v2)的開源前端和授權(quán)工具真慢,最低要求注冊(cè)表版本是 2.1毅臊。它可以作為授權(quán)服務(wù)器和用戶界面黑界,用于新一代的 Docker Registry。
安全宠蚂。Portus 實(shí)現(xiàn)了最新的 Docker Registry中定義的新的授權(quán)方案童社。它允許對(duì)你所有的鏡像進(jìn)行細(xì)顆粒度控制,你可以決定哪個(gè)用戶和團(tuán)隊(duì)可 push/pull 鏡像著隆。
輕松管理用戶呀癣。 在 Portus 映射你的公司弦赖,可以定義任意數(shù)量的 team,并從 team 添加和移除用戶蹬竖。Team 有三種類型的用戶:Viewers ,只能 pull 鏡像列另;Contributors旦装,可以 push / pull 鏡像页衙;Owners阴绢,類似 contributors,但可以從 team 添加或移除用戶眨八。
搜索棒妨。Portus 提供你的私人注冊(cè)表的內(nèi)容的預(yù)覽,同時(shí)有一個(gè)快速搜索鏡像的功能券腔。
Audit。所有相關(guān)事件都會(huì)被 Portus 自動(dòng)記錄纷纫,可被管理員用戶分析。
搭建過(guò)程比較慢烟瞧,主要是下載依賴鏡像慢染簇。
yum -y install epel-release
yum -y install python-pip
pip install -U docker-compose
git clone https://github.com/SUSE/Portus.git
cd Portus
修改Gemfile和Gemfile.lock 的第一行:https://rubygems.org修改為“http://rubygems.org
compose-setup.sh -e server IP
#這里就是漫長(zhǎng)的安裝過(guò)程啦,有人推薦先將所需的依賴鏡像下載锻弓,然后再安裝
(Portus安裝依賴MariaDB,portus_web暴心、rails4.2.2,Registry2.3.1,使用docker load 命令加載成鏡像)
看到如下信息表示专普,安裝成功。
Creating portus_db_1
Creating portus_crono_1
Creating portus_web_1
Creating portus_registry_1
Waiting for mariadb to be ready in 5 seconds
Portus: configuring database... failed, will retry
Waiting for mariadb to be ready in 5 seconds
Portus: configuring database... [SUCCESS]
###################
# SUCCESS #
###################
在SUCCESS下面則是提示信息筋粗,告訴你怎么使用Portus炸渡,根據(jù)提示步驟操作即可
Make sure port 3000 and 5000 are open on host 192.168.220.123
Open http://192.168.220.123:3000 with your browser and perform the following steps:
1. Create an admin account
2. You will be redirected to a page where you have to register the registry. In this form:
- Choose a custom name for the registry.
- Enter 192.168.220.123:5000 as the hostname.
- Do *not* check the "Use SSL" checkbox, since this setup is not using SSL.
Perform the following actions on the docker hosts that need to interact with your registry:
- Ensure the docker daemon is started with the '--insecure-registry 192.168.220.123:5000'
- Perform the docker login.
To authenticate against your registry using the docker cli do:
$ docker login -u <portus username> -p <password> -e <email> 192.168.220.123:5000
To push an image to the private registry:
$ docker pull busybox
$ docker tag busybox 192.168.220.123:5000/<username>/busybox
$ docker push 192.168.220.123:5000/<username>/busybox
下圖為當(dāng)前Portus運(yùn)行記錄,上傳了兩個(gè)鏡像 hello-world 和 webbase
在容器關(guān)閉后暇唾,想再次啟動(dòng)
docker start portus_db_1 portus_web_1 portus_crono_1 portus_registry_1
提交代碼時(shí)分兩步
- docker login 192.168.220.123:5000
輸入在portus中新建的用戶名和密碼 - docker push 192.168.220.123:5000/busybox
之前問(wèn)登錄遇到: unauthorized: authentication required
問(wèn)題: 在Teams-Create new team 點(diǎn)擊無(wú)響應(yīng)辰斋,關(guān)于對(duì)registry的權(quán)限控制待測(cè)試。
總結(jié):此次安裝消耗時(shí)間過(guò)多
在不知道registry有v1 和 v2 够挂,也不知道shipyard官方不支持v2,排查問(wèn)題消耗時(shí)間多孽糖。
在知道只支持registry v2 的情況下毅贮,為了得到 shipyard-registry v2 ,重編譯消耗時(shí)間多滩褥。
在轉(zhuǎn)方向后,沒(méi)有去看Nginx+ssl+registry 能達(dá)到什么效果瑰煎,就先實(shí)施了,做了無(wú)用功魄健。
歸結(jié)1:使用新東西時(shí)--存在很多未知插勤,要先做調(diào)查柬甥。
歸結(jié)2:先有目標(biāo)其垄,判定是否能到預(yù)期目標(biāo)卤橄,然后再執(zhí)行(很低級(jí)的一個(gè)錯(cuò)誤绿满,有煩躁的情緒在里面)