搭建本地 Registry - 每天5分鍾玩轉 Docker 容器技術(20)


Docker Hub 雖然非常方便,但還是有些限制,比如:

  1. 需要 internet 連接,而且下載和上傳速度慢。

  2. 上傳到 Docker Hub 的鏡像任何人都能夠訪問,雖然可以用私有 repository,但不是免費的。

  3. 安全原因很多組織不允許將鏡像放到外網。

解決方案就是搭建本地的 Registry。

Docker 已經將 Registry 開源了,同時在 Docker Hub 上也有官方的鏡像 registry。下面我們就在 Docker 中運行自己的 registry。

  1. 啟動 registry 容器。

    我們使用的鏡像是 registry:2。

    -d 是后台啟動容器。

    -p 將容器的 5000 端口映射到 Host 的 5000 端口。5000 是 registry 服務端口。端口映射我們會在容器網絡章節詳細討論。

    -v 將容器 /var/lib/registry 目錄映射到 Host 的 /myregistry,用於存放鏡像數據。-v 的使用我們會在容器存儲章節詳細討論。

  2. 通過 docker tag 重命名鏡像,使之與 registry 匹配。
    我們在鏡像的前面加上了運行 registry 的主機名稱和端口。

    前面已經討論了鏡像名稱由 repository 和 tag 兩部分組成。而 repository 的完整格式為:[registry-host]:[port]/[username]/xxx

    只有 Docker Hub 上的鏡像可以省略 [registry-host]:[port]

  3. 通過 docker push 上傳鏡像。
    97.png

  4. 現在已經可通過 docker pull 從本地 registry 下載鏡像了。
    除了鏡像的名稱長一些(包含 registry host 和 port),使用方式完全一樣。

以上是搭建本地 registry 的簡要步驟。當然 registry 也支持認證,https 安全傳輸等特性,具體可以參考官方文檔 https://docs.docker.com/registry/configuration/

至此,Docker 鏡像的內容就討論完了,下節我們對這部分做個小結。


二維碼+指紋.png


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM