首頁>技術>

某些時候使用Docker Hub這樣的公共倉庫可能不方便,或者在公司內網無法訪問公網的時候,我們可以選擇建立一個本地倉庫供私人使用。

直接安裝執行docker-registry
root@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引數即可。

例如:

16
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • Redis底層資料結構解密