運維雲原生集羣系統,創建本身的私有Docker鏡像倉庫必不可少。一方面能夠加快多節點部署容器鏡像的下載速度,另外一方面是爲了安全(容器裏存儲有系統全部的信息、包括密碼、數據庫等等,切記不可上傳dao共有鏡像倉庫)。能夠建立私有鏡像倉庫的服務軟件主要有這麼幾個:html
這裏,主要介紹Nexus的使用。docker
Nexus能夠提供多種軟件組件服務,這裏我經過容器來提供Nexus服務。運行下面的命令:數據庫
docker run -d --name nexus -p 5000:5000 -p 8081:8081 sonatype/nexus3
說明:json
上面的容器啓動完畢後,在瀏覽器輸入網址:segmentfault
http://localhost:8081
將會顯示Nexus主界面,點擊「Sign in」登陸(初始帳號admin/admin123)。以下:瀏覽器
點擊齒輪圖標進入設置界面,以下:安全
使用「Create Repository」建立容器鏡像倉庫,選擇Docker(hosted)類型,設置服務http端口爲5000。而後查看屬性。服務器
這裏的端口5000是啓動容器時就設好的。負載均衡
啓動匿名訪問。運維
容器鏡像服務須要單獨啓用受權沙盒,在Security-Realms頁面中將Docker Bearer Token Realm加入到Active列表中。
爲了方便,上面使用的是http鏈接協議,不建議在外網使用。
外網服務應使用https鏈接,須要預留端口,以及建立ssl證書並使用「SSL Certificates」添加進來。
爲了方便,上面使用的是http鏈接協議,還須要在Docker客戶機設置才能訪問(默認爲https)。
執行:
sudo gedit /etc/docker/daemon.json
在文件中添加"insecure-registries": ["http://10.1.1.184:5000"],以下:
{ "exec-opts": ["native.cgroupdriver=systemd"], "insecure-registries": ["http://10.1.1.184:5000"] }
說明:
而後,須要從新啓動Docker:
sudo systemctl restart docker
查看一下信息:docker info,看是否出現insecure-registries的信息。
使用下面的方式登陸到容器鏡像服務。
docker login 10.1.1.184:5000
使用Docker Tag對容器打新的標,指向自建的倉庫。
docker tag sonatype/nexus3 10.1.1.184:5000/openthings/nexus3
使用Docker push推送容器鏡像。
docker push 10.1.1.184:5000/openthings/nexus3
使用Docker pull拉取鏡像。
docker pull 10.1.1.184:5000/openthings/nexus3
使用者發現Nexus會出現錯誤,沒法鏈接。使用下面的命令重啓Nexus的容器服務,再從新登陸就行了。
docker restart nexus
最後,簡單說下體會,使用Nexus的最大好處是同時支持Maven等軟件倉庫,維護比較簡單。其它方面如性能、容錯、擴容等企業級功能相對是比較弱的,企業版裏提供HA,是收費的Feature。