docker官方文檔:https://docs.docker.com/registry/
? ????????????????? ? ? ? 主機? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? IP
????????????docker倉庫機——master? ? ? ? ? ? ? ? ? ? ? ? ? ? ?192.168.11.128
????????????docker客戶機——server? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 192.168.11.129
前提準備:
主機都必須都安裝好了docekr,不然沒法實驗
一、關閉防火墻、selinux
systemctl stop firewalld.service
systemctl disable firewalld.service
sed -i 's/SELINUX=.*/SELINUX=disabled/'/etc/sysconfig/selinux(永久關閉selinux)
二、搭建私有倉庫registr:
maste端:docker? pull? registry

三、master端啟動docker私有倉庫鏡像
命令:docker run --privileged? -d -v /registry:/var/lib/registry? -p5000:5000? --restart=always? --name registry? registry:latest
上面命令的參數(shù)部分內容解釋:
privileged:? ???表示相當于擁有超級用戶的權限
/registry:/var/lib/registry:?? 左邊的為宿主機的目錄絕對,當目錄不存在的時候會自動創(chuàng)建其目錄,右邊的是容器的目錄絕對路徑
--restart=always: 不管退出狀態(tài)碼是什么始終重啟容器。當指定always時,docker daemon將無限次數(shù)地重啟容器。容器也會在daemon啟動時嘗試重啟,不管容器當時的狀態(tài)如何。



注解:
wordpress:latest :? 制作軟件包名:版本
192.168.11.128:5000/wordpress:latest:192.168.11.128:5000這個是docker私有倉庫名和端口
wordpress:latest:? ?鏡像名字:版本號
為什么要制作軟件包的時候前面要加docker個人賬號呢?可以查看這篇文章
https://blog.csdn.net/baidu_19473529/article/details/70156144
六、將打好標簽的鏡像上傳到docker私有倉庫:
命令:docker push?? 192.168.11.128:5000/wordpress

對于上面的報錯,進行配置即可:

注意:
?docker比較特殊吧,重新加載docker配置文件使用命令:??systemctl? daemon-reload



解釋:v2/_catalog目錄
?curl?? http://192.168.11.128:5000/相當于我們cd到了容器的/var/lib/registry目錄下,我們上面將registry鏡像做了一個卷掛載,所以現(xiàn)在去/registry目錄下查看就知道了
命令:tree


七、客戶端操作
?????? 下載鏡像:






現(xiàn)在再次下載httpd鏡像:docker? pull? 192.168.11.128:5000/httpd:v1

上傳鏡像:


??? 3、上傳鏡像到docker私倉:
命令:docker? ? push?? 192.168.11.128:5000/busybox:latest
??? 4、查看docker私倉:

docker上傳下載成功,簡單的搭建完成