Docker 倉庫

倉庫(Repository)是集中存放鏡像的地方。
一個容易與之混淆的概念是注冊服務器(Registry)。
注冊服務器是存放倉庫的具體服務器,每個服務器上可以有多個倉庫,每個倉庫下面有多個鏡像。
倉庫可以被認為是一個具體的項目或目錄。
倉庫分為公共倉庫和私有倉庫,下面將分別介紹如何使用DockerHub官方倉庫進行登錄、下載等基本操作。

Docker Hub

目前 Docker 官方維護了一個公共倉庫 https://hub.docker.coom,其中已包括15000 多個的鏡像。大部分需求都可以通過在 Docker Hub 中下載鏡像來實現。

登錄

通過執行 docker login 命令來輸入用戶名、密碼和郵箱來完成注冊和登錄。注冊成功后,本地用戶目錄的.dockercfg 中將保存用戶的認證信息。

Paste_Image.png

基本操作

用戶無需登錄即可通過 docker search 命令來查找官方倉庫中的鏡像,并利用docker pull 命令來將它下載到本地。
例如:以centos為關鍵詞進行搜索:
root@localhost:~# docker search centos

例如:下載官方的centos 鏡像到本地如下所示:
root@localhost:~# sudo docker pull centos

用戶也可以在登錄后通過 docker push 命令來將本地鏡像推送到 Docker Hub。

創建和使用私有倉庫

使用 registry 鏡像創建私有倉庫

自動下載并店一個 registry 容器,創建本地的私有倉庫服務。

root@localhost:~# sudo docker run -d -p 5000:5000 registry
默認情況下,會將倉庫創建在容器的 /tmp/registry 目錄下。通過 -v 參數將鏡像文件存放在本地指定的路徑上。
例如下南的例子將上傳的鏡像放到 /opt/data/registry 目錄:
root@localhost:~# sudo docker run -d -p 5001:5001 -v /opt/data/registry:/tmp/registry registry
此時,在本地將啟動一個私有倉庫服務,監聽端口為 5001。

管理私有倉庫鏡像

1.在本機搭建私有倉庫,并查看IP為:10.0.2.2
root@localhost:~# sudo docker run -d -p 5000:5000 registry
2.然后在虛擬機里查看系統已有鏡像:
root@localhost:~# sudo docker images
3.使用 docker tag 命令將這個鏡像標記為10.0.2.2:5000/test
root@localhost:~# sudo docker tag registry:latest
4.使用 docker push 上傳標記的鏡像:
root@localhost:~# sudo docker push 10.0.2.2:5000/test
5.用 curl 查看倉庫 10.0.2.2:5000 中的鏡像:
root@localhost:~# curl http://10.0.2.2:5000/v1/search
在結果中可以看到{“description": "", "name": "library/test"},表明鏡像已經成功上傳。
現在可以到任務一臺能訪問10.0.2.2 地址的機器去下載這個鏡像:
root@localhost:~# sudo docker pull 10.0.2.2:5000/test

小結

倉庫概念的引入,為 Docker 鏡像文件的分發和管理提供了便捷的途徑。
在企業的生產環境中,一般使用私有倉庫來維護內部鏡像。

參考文檔

《Docker 技術入門與實戰》第5章 倉庫

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容