某些時候使用Docker Hub這樣的公共倉庫可能不方便,或者在公司內網無法訪問公網的時候,我們可以選擇建立一個本地倉庫供私人使用。
直接安裝執行docker-registryroot@phyger-VirtualBox:/home/phyger# docker run -d -p 5000:5000 --restart=always --name my_registry registryUnable to find image 'registry:latest' locallylatest: Pulling from library/registrycbdbe7a5bc2a: Pull complete47112e65547d: Pull complete46bcb632e506: Pull completec1cc712bcecd: Pull complete3db6272dcbfa: Pull completeDigest: sha256:8be26f81ffea54106bae012c6f349df70f4d5e7e2ec01b143c46e2c03b9e551dStatus: Downloaded newer image for registry:latest22a16661a027fc031ba7cab0d9915fbd0ea0829139263e91934055e2988b205croot@phyger-VirtualBox:/home/phyger# docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES22a16661a027 registry "/entrypoint.sh /etc…" 5 seconds ago Up 2 seconds 0.0.0.0:5000->5000/tcp my_registryroot@phyger-VirtualBox:/home/phyger#
我們在啟動registry容器的時候將容器的5000埠對映到了host的5000埠,因為預設的registry的服務埠是5000,此時我們使用host的5000埠就可以訪問到本地的私有倉庫。
訪問私有倉庫查詢host的地址:
從本地windows電腦訪問虛擬機器的IP+5000埠:
[Administrator.LWAL3QZC7R46JQC] ➤ curl http://192.168.56.102:5000/v2/_catalog{"repositories":[]}
到此,說明本地倉庫搭建成功。
上傳映象檢視本地映象:
root@phyger-VirtualBox:/home/phyger# docker imagesREPOSITORY TAG IMAGE ID CREATED SIZEmy_ubuntu v5 038342424332 4 days ago 141MBregistry latest 2d4f4b5309b1 4 days ago 26.2MBalpine latest a24bb4013296 3 weeks ago 5.57MBubuntu latest 1d622ef86b13 2 months ago 73.9MBhello-world latest bf756fb1ae65 5 months ago 13.3kBroot@phyger-VirtualBox:/home/phyger#
將my_ubuntu:v5標記為私有映象127.0.0.1:5000/my_ubuntu:
root@phyger-VirtualBox:/home/phyger# docker tag my_ubuntu:v5 127.0.0.1:5000/my_ubuntu:v5root@phyger-VirtualBox:/home/phyger# docker imagesREPOSITORY TAG IMAGE ID CREATED SIZEmy_ubuntu v5 038342424332 4 days ago 141MB127.0.0.1:5000/my_ubuntu v5 038342424332 4 days ago 141MBregistry latest 2d4f4b5309b1 4 days ago 26.2MBalpine latest a24bb4013296 3 weeks ago 5.57MBubuntu latest 1d622ef86b13 2 months ago 73.9MBhello-world latest bf756fb1ae65 5 months ago 13.3kB
將127.0.0.1:5000/my_ubuntu推送到本地私有倉庫:
root@phyger-VirtualBox:/home/phyger# docker push 127.0.0.1:5000/my_ubuntu:v5The push refers to repository [127.0.0.1:5000/my_ubuntu]e92f897b912b: Pushedv5: digest: sha256:8fa3f9d55d4e5793cf936a2592d2405bdf46796c9d06b54abcc1a8104c9a819f size: 528root@phyger-VirtualBox:/home/phyger#
再次從本地windows查詢私有倉庫中的映象:
可以看到,本地私有倉庫已經有了一個名為my_ubuntu的映象,如果想查詢my_ubuntu的詳細資訊,則使用如下方法:
拉取測試檢視本地映象列表:
拉取127.0.0.1:5000/my_ubuntu
補充預設的私有倉庫的映象存放在容器的/var/lib/registry路徑下,如果想要指定映象在host上的存放路徑,則在啟動registry的時候使用檔案對映-v引數即可。
例如: