搭建和使用Docker私有倉庫

需要注意的是,從Docker Pool下載的鏡像文件,與官方鏡像文件是完全一致的。

安裝Docker之後,可以是使用官方提供的registry鏡像來搭建一套本地私有倉庫環境:

 docker run 5000:5000 registry

輸入之後就可以等待了,其實本地倉庫本身就是容器,這句命令會下載(如果本地沒有的話)並創建一個registry容器,創建本地的私有倉庫。

默認情況下,會將倉庫創建在容器的tmp/registry目錄下,當然,可以通過-v參數將鏡像文件存放到本地的指定路徑上。

docker run 5000:5000  /docker/my_registry:/tmp/registry registry

然後就建好了本地的倉庫。比如先上傳一個centos7的鏡像。

然後就可以管理這個私有倉庫,上傳鏡像前需要使用docker tag命令將這個鏡像標記爲127.0.0.1:500/ubuntu。

[root@wdg2 ~]# docker  tag centos7 127.0.0.1:5000/centos7
[root@wdg2 ~]# docker images
REPOSITORY               TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
127.0.0.1:5000/centos7   latest              562987ba2b7e        About an hour ago   589.4 MB
centos7                  latest              562987ba2b7e        About an hour ago   589.4 MB
registry                 latest              015b3f417103        3 days ago          33.29 MB
centos                   latest              9baab0af79c4        2 weeks ago         196.8 MB

可以使用docker push上傳標記的鏡像:
docker push 127.0.0.1:5000/centos7
在獲取鏡像的時候,只需要在前面加127.0.0.1:5000便可以了。
[root@wdg2 my_registry]# docker push centos7
You cannot push a "root" repository. Please rename your repository to <user>/<repo> (ex: qq411277311/centos7)
[root@wdg2 my_registry]# docker push 127.0.0.1:5000/centos7
The push refers to a repository [127.0.0.1:5000/centos7] (len: 1)
562987ba2b7e: Image already exists
Digest: sha256:f4931bfbe218467c58a7b2700a6dd34e057cfcbf6814ff7357d0ad7ddd1c6552
[root@wdg2 my_registry]# docker rmi 127.0.0.1:5000/centos7
Untagged: 127.0.0.1:5000/centos7:latest
[root@wdg2 my_registry]# docker pull 127.0.0.1:5000/centos7
latest: Pulling from 127.0.0.1:5000/centos7
562987ba2b7e: Already exists
Digest: sha256:f4931bfbe218467c58a7b2700a6dd34e057cfcbf6814ff7357d0ad7ddd1c6552
Status: Downloaded newer image for 127.0.0.1:5000/centos7:latest

不過這只是在本地提供服務,因爲Docker傳輸要求https,因此還沒有嘗試證書問題,所以對外提供服務等有機會再嘗試。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章