Portus nginx registry 搭建docker私有倉庫

基于suse的開源項(xiàng)目搭建docker私有倉庫https://github.com/SUSE/Portus.git

安裝時(shí)間2017-10-19日,基于github上的master分支進(jìn)行安裝。

安裝環(huán)境centos7.2

1、需要有docker的環(huán)境,假設(shè)已經(jīng)安裝好docker

參考docker document

2、安裝docker-compose編排工具

yum -y install epel-release

yum -y install python-pip

pip install -U docker-compose

3、下載portus項(xiàng)目:

git clonehttps://github.com/SUSE/Portus.git

4、根據(jù)項(xiàng)目中的./Portus/examples/compose來進(jìn)行安裝

cd ./Portus/examples/compose

1)修改.env文件

vim .env#修改MACHINE_FQDN改為對(duì)應(yīng)你需要的域名,xxxx.test-portus.com,此處如果該域名沒有dns解析,則需要配置/etc/hosts


2)修改docker-compose.yml文件

vim docker-compose.yml#修改REGISTRY_AUTH_TOKEN_ISSUER為portus.test.lan此處應(yīng)該是portus項(xiàng)目鏡像的bug,不修改的話token驗(yàn)證會(huì)失敗,不能夠docker

login到registry ,參考issues:https://github.com/SUSE/Portus/issues/1407;


3)修改docker-compose.yml文件

vim docker-compose.yml #添加extra_hosts除nginx配置外都需要添加,此處在github上沒有找到對(duì)應(yīng)的問題,但是會(huì)導(dǎo)致docker中無法解析到你配置的域名,導(dǎo)致你初始化portus的時(shí)候連接不成功,后續(xù)初始化portus的時(shí)候會(huì)提到該問題。

extra_hosts:

- "xxxx.test-portus.com:172.20.2.93"


4)修改nginx.conf配置文件

vim./nginx/nginx.conf#server_name修改為你對(duì)應(yīng)的域名


至此配置修改就OK了,后續(xù)需要使用openssl生成registry和nginx需要用的證書

5、生成ssl證書

cd secrets/

首先執(zhí)行如下命令生成一個(gè)key

openssl genrsa -des3 -out xxx.key 1024

然后他會(huì)要求你輸入這個(gè)key文件的密碼。因?yàn)橐院笠onginx使用。每次reload nginx配置時(shí)候都要你驗(yàn)證這個(gè)PAM密碼的,可以根據(jù)這個(gè)key文件再生產(chǎn)一個(gè)key文件,從而不需要使用這個(gè)密碼;

openssl rsa -in xxx.key -out portus.key

然后根據(jù)這個(gè)key文件生成證書請(qǐng)求文件,此處需要填很多信息CA項(xiàng)hostname需要填寫你的域名xxxx.test-portus.com,不然會(huì)遇到證書驗(yàn)證失敗的問題;

openssl req -new -key portus.key -out portus.csr

最后根據(jù)這2個(gè)文件生成crt證書文件,這里365是證書有效期,最后使用到的文件是key和crt文件。

openssl x509 -req -days 365 -inportus.csr -signkey portus.key -out portus.crt

6、啟動(dòng)portus

docker-compose up –d

7、初始化portus

Windows登陸配置hosts信息,https登陸,

第一次登陸創(chuàng)建admin賬號(hào),創(chuàng)建的第一個(gè)賬號(hào)有admin的權(quán)限。


登陸之后,需要配置registry,此處需要勾選use ssl并填入你的域名;這里如果第4步第3)小步的配置沒有修改,將導(dǎo)致鏈接不上域名。


最后,docker login試了一下,報(bào)錯(cuò)了哈,應(yīng)為我們用的是自簽名的證書,沒有商用的證書,所以docker login還是會(huì)失敗,如下:


我的解決方案是:修改dockerd的啟動(dòng)項(xiàng),重啟docker服務(wù)就可以LOGIN了,然后就可以push鏡像到你的私有倉庫上去了,portus會(huì)記錄所有的操作,使用portus建議參考官方document http://port.us.org/documentation


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容