master:192.168.1.110
node:192.168.1.111
docker(鏡像倉庫):192.168.1.119
#本機的所有虛擬機都和本機網絡互通,虛擬機都可以上網
1、修改/etc/hosts(docker本地鏡像倉庫操作)
192.168.1.119 docker
設置網易雲鏡像倉庫爲本地下載的倉庫,並且設置本機爲鏡像上傳的倉庫
cat > /etc/docker/daemon.json << EOF
{"registry-mirrors": ["http://hub-mirror.c.163.com"],"insecure-registries": [ "192.168.1.119:5000","docker:5000"]}
EOF
systemctl daemon-reload
systemctl restart docker
3、下載registry倉庫管理服務(鏈接:https://pan.baidu.com/s/1JI4Bb9sFHyEd6izaXc47OQ 提取碼:rf5s)下載的tar包需要進行導入“docker load < registry.tar”,或者在線下載網易雲的鏡像
docker pull registry
如果出現下方報錯信息
Error response from daemon: Get https://registry-1.docker.io/v2/: dial tcp: lookup registry-1.docker.io on [::1]:53: read udp [::1]:34106->[::1]:53: read: connection refused
那是因爲,虛擬機沒有通過dns獲取到網易雲的地址
處理方法
4、處理方法
修改/etc/sysconfig/network-scripts/ifcfg-ens33,添加下方的dns。
DNS1=114.114.114.114
systemctl daemon-reload
systemctl restart network
5、創建registry容器
#創建容器鏡像存放路徑掛載到外面的路徑
mkdir -p /data/registry
docker run -itd -v /data/registry:/var/lib/registry -p 5000:5000 --restart=always --name registry registry:latest
#詳情
-itd:在容器中打開一個僞終端進行交互操作,並在後臺運行;
-v:把宿主機的/data/registry目錄綁定 到 容器/var/lib/registry目錄(這個目錄是registry容器中存放鏡像文件的目錄),來實現數據的持久化;
-p:映射端口;訪問宿主機的5000端口就訪問到registry容器的服務了;
--restart=always:這是重啓的策略,假如這個容器異常退出會自動重啓容器;
--name registry:創建容器命名爲registry,你可以隨便命名;
registry:latest:這個是剛纔pull下來的鏡像;
6、測試registry服務情況
curl http://127.0.0.1:5000/v2/_catalog
{"repositories":[]} #沒有任何鏡像
#查看鏡像的版本
curl http://127.0.0.1:5000/v2/nginx/tags/list
curl http://docker:5000/v2/nginx/tags/list
{"name":"nginx","tags":["latest","v1"]}
----------------------------------------------------------------------------------------------------------------------------------------------------
curl http://k8s-docker:5000/v2/mysql/tags/list
{"name":"mysql","tags":["latest"]}
#下載測試鏡像nginx,以網易云爲鏡像倉庫進行下載
docker pull nginx
7、給鏡像打標籤
docker tag nginx docker:5000/nginx:v1.0.0
8、上傳鏡像到本地倉庫
docker push docker:5000/nginx:v1.0.0
9、登錄node服務器(測試私人倉庫服務器)
cat > /etc/docker/daemon.json << EOF
{"insecure-registries": [ "192.168.1.119:5000","docker:5000"]}
EOF
systemctl daemon-reload
systemctl restart network
10、下載私人倉庫中的nginx鏡像(node節點操作)
docker pull docker:5000/nginx:v1.0.0
11、查看下載本地鏡像
docker images|grep nginx