需要注意的是,從Docker Pool下載的鏡像文件,與官方鏡像文件是完全一致的。
安裝Docker之後,可以是使用官方提供的registry鏡像來搭建一套本地私有倉庫環境:
docker run –d –p 5000:5000 registry
輸入之後就可以等待了,其實本地倉庫本身就是容器,這句命令會下載(如果本地沒有的話)並創建一個registry容器,創建本地的私有倉庫。
默認情況下,會將倉庫創建在容器的tmp/registry目錄下,當然,可以通過-v參數將鏡像文件存放到本地的指定路徑上。
docker run –d –p 5000:5000 –v /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,因此還沒有嘗試證書問題,所以對外提供服務等有機會再嘗試。