前提:已安裝好docker,不懂安裝的可以查看CentOS 7下使用docker-compose部署Django與MySQL實戰(zhàn) http://www.haoyitu.cn/Linux/2019-05/158468.htm
系統(tǒng):CentOS 7
一、pull registry鏡像到本地
docker pull registry
二、運行registry鏡像
docker run -d -p 5000:5000 -v /home/$user/registry:/var/lib/registry registry
三、查看registry是否成功啟動且可用
docker ps -a #查看registry容器狀態(tài)
如果本機有圖形界面,在瀏覽器中訪問 http://127.0.0.1:5000/v1/,看到如下內(nèi)容則表示registry可用
如果沒有圖形界面,則執(zhí)行命令: curl -XGET http://127.0.0.1:5000/v2,可以看到返回一個{}
四、修改/etc/docker/daemon.js文件配置,增加如下內(nèi)容(客戶端、服務(wù)器端都需要做該配置,在本機只需要配置一次就可以):
{
“insecure-registries”: [“127.0.0.1:5000”]
}
如果當(dāng)前已有內(nèi)容,則在原文件的{}里面的末尾追加內(nèi)容即可,正常情況來說,自己搭建registry倉庫是方便多人使用,這個時候就需要增加多個insecure-registries內(nèi)容,示例如下:
{
“insecure-registries”: [“127.0.0.1:5000″,”192.168.1.5:5000″,”xxx.cn:5000”]
}
如果不執(zhí)行該操作,在push鏡像的時候會報錯:http: server gave HTTP response to HTTPS client
原因是Docker從1.3.X之后,與docker registry交互默認使用的是https,然而此處搭建的私有倉庫只提供http服務(wù),所以當(dāng)與私有倉庫交互時就會報上面的錯誤。
當(dāng)然另外一種解決方案就是給服務(wù)器開啟https協(xié)議
五、通過docker tag重命名鏡像
docker pull busybox #先下載最新的鏡像
docker tag busybox:latest 127.0.0.1:5000/busybox:v1 #tag
六、push tag后的鏡像到registry
docker push 127.0.0.1:5000/busybox:v1
七、驗證鏡像已成功push
在瀏覽器訪問:http://127.0.0.1:5000/v2/_catalog,成功時會顯示busybox