一、准備:
1、服務器(或者虛擬機2台,我的服務環境【 阿里雲服務器-Ubuntu 1804 +百度雲-Ubuntu 1604】)
2、有效鏡像(我這里以上一篇隨筆鏡像作為有效鏡像
https://www.cnblogs.com/billowliu/p/12650361.html)
3、官網倉庫鏡像(
https://hub.docker.com,打開官網超級慢~官方源鏡像下載也慢)
4、daemon.json(主要配置Docker push 、Pull 鏡像源地址)
二、目標:
1、如何構建私有倉庫
2、如何將鏡像上傳到私有倉庫
3、如何下載私有倉庫鏡像
三、實現步驟
Ⅰ 、准備有效鏡像
用上一篇文章中所用的BillAspNetCoreDocker做范例, 這里先查看一下有哪些鏡像,並可以通過 inspeect 鏡像查看詳細信息
docker images
docker image inspect billcore

這里記錄下Tag,目前我理解的應該是版本信息(下面命令相當於Copy並指定Tag信息-推送鏡像到私有倉庫時准備的)
docker image tag billcore billcore:bill
docker images

通過billcore鏡像創建容器並后台運行(-d后台 -P 暴露端口-否則外網可能無法訪問)
docker run -d -P billcore

現在就可以通過瀏覽器通過域名或者IP訪問端口為32769,如下圖所示可以正常運行。

到這里鏡像確保沒有問題且能正常在容器中運行
現在重點是記錄Docker private Repository 內容,為下一步集群搭建做准備
Ⅱ、官網倉庫鏡像
下載官方倉庫鏡像可能比較慢,國內的鏡像源還蠻快的(
https://hub.docker.com),相關說明文檔:
https://docs.docker.com/docker-hub/official_images/

命令格式
docker pull [OPTIONS] NAME[:TAG|@DIGEST]
注:對於Docker鏡像來說,如果不顯式地指定TAG,則默認會選擇 latest標簽,即下載倉庫中最新版本的鏡像。
docker pull registry

再次查看鏡像確認已經安裝完成
docker images

運行registry -后台運行(守護)暴露服務器與容器端口均為5000 容器名稱定義為 registry
docker run -d -P 5000:5000 --name registry registry
出現下面圖提示,應該是國外源下載速度太慢,設置 daemon.json設置國內

cd /etc/docker
ls
vi /etc/docker/daemon.json
出現編輯界面添加如下其中一條內容即可(多條僅供參考):
網易:{"registry-mirrors": ["http://hub-mirror.c.163.com"]} 阿里:{"registry-mirrors": ["https://help.aliyun.com/document_detail/60750.html"]} 國內:{"registry-mirrors": ["https://registry.docker-cn.com"]}

再次執行,如下所所示成功了
docker run -d -P 5000:5000 --name registry registry

再次查看容器,
docker ps -a

至此倉庫已經搭建完成,下一步就是往倉庫中推送鏡像,提供給其他服務器使用
docker images

現在得目標是將billcore 的鏡像推送至私有倉庫
docker image tag billcore xx.xxx.141.79:5000/billcore docker images

通過 push命令推送
docker push xx.xxx.141.79:5000/billcore

解決辦法
echo '{ "insecure-registries":["xxx.xxx.141.79:5000"] }' > /etc/docker/daemon.json


重啟Dokcer服務,繼續推送
systemctl restart docker docker push xx.xxx.141.79:5000/billcore
然后還是出現如下報錯,仔細檢查原來重啟dokcer后容器也跟着停止了,


解決問題,啟動容器:7358409c6e4a 對應 registry
docker start 7358409c6e4a
docker ps -a
從下圖看出docker私有倉庫容器已經重新運行成功

繼續推送,可以看到正在向私有倉庫進行推送billcore,如果是本機會更快,
因為我待會得用百度服務器下載阿里雲服務器 私有倉庫的鏡像所以我用的公網IP有點慢
docker push xx.xxx.141.79:5000/billcore

推送完成后

推送完成后查看
curl xx.xxx.141.79:5000/v2/_catalog

現在私有倉庫中有存在一個billcore 的項目
現在切換到另外一台服務准備下載鏡像
1、設置daemon.json
echo '{ "insecure-registries":["47.105.141.79:5000"] }' > /etc/docker/daemon.json

重啟Docker 服務(這里建議一開始就設置好私有倉庫地址,后續統一將鏡像在私有倉庫中管理不然每次都得重啟服務)
service docker restart
下載鏡像billcore、部署鏡像、並訪問網站
docker pull xx.xxx.141.79:5000/billcore docker images docker run -d -P xx.xxx.141.79:5000/billcore docker ps -a



至此私有鏡像源服務器(阿里)已經搭建完成,並且在百度雲服務器中下載鏡像進行部署~
本文記錄均為個人操作步驟筆記(含踩坑過程),僅供參考~