搞定Docker私有倉庫Registry
阿新 • • 發佈:2018-12-12
一、什麼是Docker私有倉庫Registry
官方的Docker hub是一個用於管理公共映象的好地方,我們可以在上面找到我們想要的映象,也可以把我們自己的映象推送上去。但是,有時候我們的伺服器無法訪問網際網路,或者你不希望將自己的映象放到公網當中,那麼你就需要Docker Registry,它可以用來儲存和管理自己的映象。
二、安裝Docker及Registry
安裝Docker見之前博文:
http://www.cnblogs.com/Javame/p/5492543.html
安裝Registry:
很簡單,只需要執行一個Registry容器即可(包括下載映象和啟動容器、服務)
docker run -d -p 5000:5000 -v /data/registry:/var/lib/registry --name registry --restart=always registry
三、如何使用Registry
我也看過其他博文,經常報的一個錯誤就是:
unable to ping registry endpoint https://172.18.3.22:5000/v0/ v2 ping attempt failed with error: Get https://172.18.3.22:5000/v2/: http: server gave HTTP response to HTTPS client
這是由於Registry為了安全性考慮,預設是需要https證書支援的.
但是我們可以通過一個簡單的辦法解決:
修改/etc/docker/daemon.json檔案
#vi /etc/docker/daemon.json { "insecure-registries": ["<ip>:5000"] } #systemctl daemon-reload #systemctl restart docker
注:<ip>:Registry的機器ip地址,在安裝registry的節點和客戶端需要訪問私有Registry的節點都需要執行此步操作。
四、通過 docker tag重新命名映象,使之與registry匹配
docker tag inits/nginx1.8 <ip>:5000/nginx1.8:latest
五、上傳映象到Registry
docker push <ip>:5000/nginx1.8:latest
六、檢視Registry中所有映象資訊
curl http://<ip>:5000/v2/_catalog
返回: {"repositories":["centos6.8","jenkins1.638","nginx","redis3.0","source2.0.3","zkdubbo"]}
七、其他Docker伺服器下載映象
docker pull <ip>:5000/nginx1.8:latest
八、啟動映象
docker run -it <ip>:5000/nginx1.8:latest /bin/bash