前言
前面已經(jīng)學習了怎樣通過Dockerfile來構(gòu)建我們自己的鏡像了,但是一個系統(tǒng)可能包含著很多個微服務即有很多個鏡像,當鏡像越來越多的時候,就必須得有一個地方來管理這些鏡像,Docker官方提供了Docker Hub來維護管理所有的鏡像,只是對于免費用戶而言,只能創(chuàng)建一個私有倉庫,付費用戶才擁有更多私有倉庫的權(quán)限,對此官方開源了Docker Registry的源代碼,我們可以通過它在局域網(wǎng)內(nèi)部搭建私有的鏡像注冊中心.
使用公共注冊中心
Docker Hub是Docker官方維護的公共鏡像注冊中心,用戶可以將自己的鏡像推送到Docker Hub免費的倉庫中,要想使用Docker Hub得先注冊一個Docker Hub賬號.
賬號注冊地址:https://hub.docker.com/(注意要想成功注冊賬號得先科學上網(wǎng))
注冊成功后就可以通過docker login命令輸入賬號密碼登錄進去創(chuàng)建我們自己的私有倉庫和推送鏡像了.
搭建本地注冊中心
通常由于安全和網(wǎng)絡(luò)原因,企業(yè)內(nèi)部都會在本地局域網(wǎng)搭建一個鏡像注冊中心.
1.運行docker pull命令拉取registry鏡像.
2.通過registry鏡像啟動一個容器.
3.查看容器運行情況.
4.容器啟動后打開瀏覽器輸入192.168.56.101:5000/v2/出現(xiàn)下面情況則說明運行正常.
接著我們使用docker push命令來推送自己的鏡像到本地注冊中心.
推送過程可能會不成功即出現(xiàn)下面這種情況getsocket:connection refused.
可嘗試以下解決方案:
修改/etc/docker/daemon.json文件
vi /etc/docker/daemon.json
增加"insecure-registries": ["192.168.56.101:5000"]
然后重啟docker引擎
service docker restart
再次推送鏡像到注冊中心,我們會發(fā)現(xiàn)這次推送成功了.
push成功后再來看看剛剛推送上來的鏡像,打開瀏覽器輸入:
也可以使用以下命令來驗證是否已推送成功:
到此就搭建好了Docker私有倉庫了,現(xiàn)在你可以通過 docker pull從本地Registry拉取鏡像了.