什麼是 Registry?

說明

現在您已經瞭解了什麼是容器映像檔以及它是如何運作的,您可能會想 — 這些映像檔儲存在哪裡?

您可以將容器映像檔儲存在您的電腦系統上,但是如果您想與朋友分享它們或在另一台機器上使用它們呢?這就是映像檔 Registry 的作用。

映像檔 Registry 是一個用於儲存和分享容器映像檔的集中式位置。它可以是公開或私有的。Docker HubAmazon Elastic Container Registry (ECR)Azure Container Registry (ACR)Google Container Registry (GCR)Registry 與 Repository

在使用 Registry 時,您可能會聽到術語 *Registry* 和 *Repository*,好像它們可以互換使用。即使它們相關,它們也不完全相同。

Registry 是一個儲存和管理容器映像檔的集中式位置,而 *Repository* 是 Registry 內相關容器映像檔的集合。您可以將它視為一個資料夾,您可以在其中根據專案組織您的映像檔。每個 Repository 包含一個或多個容器映像檔。

下圖顯示了 Registry、Repository 和映像檔之間的關係。

注意事項

使用 Docker Hub 的免費版本,您可以建立一個私有儲存庫和無限個公開儲存庫。如需更多資訊,請造訪 Docker Hub 訂閱頁面

試用看看

在本實作練習中,您將學習如何建置 Docker 鏡像並將其推送至 Docker Hub 儲存庫。

註冊免費的 Docker 帳戶

  1. 如果您尚未建立帳戶,請前往 Docker Hub 頁面註冊一個新的 Docker 帳戶。

    Screenshot of the official Docker Hub page showing the Sign up page

    您可以使用您的 Google 或 GitHub 帳戶進行驗證。

建立您的第一個 Repository

  1. 登入 Docker Hub

  2. 選擇右上角的「**建立儲存庫**」按鈕。

  3. 選擇您的命名空間(很可能是您的使用者名稱),然後輸入 docker-quickstart 作為儲存庫名稱。

    Screenshot of the Docker Hub page that shows how to create a public repository
  4. 將可見性設定為「**公開**」。

  5. 選擇「**建立**」按鈕來建立儲存庫。

這樣就完成了。您已成功建立您的第一個儲存庫。 🎉

這個儲存庫目前是空的。您現在將透過推送一個鏡像來解決這個問題。

使用 Docker Desktop 登入

  1. 下載並安裝複製範例 Node.js 程式碼

    要建立鏡像,您首先需要一個專案。為了讓您快速上手,您將使用位於 github.com/dockersamples/helloworld-demo-node

  • 瀏覽至新建立的目錄。

  • 執行以下指令來建置 Docker 鏡像,將 YOUR_DOCKER_USERNAME 替換為您的使用者名稱。

    注意事項

    確保您在 docker build 指令的結尾包含點 (.)。這會告訴 Docker 在哪裡可以找到 Dockerfile。

  • 執行以下指令來列出新建立的 Docker 鏡像

    您將看到如下輸出

  • 透過執行以下指令來啟動容器以測試鏡像(將使用者名稱替換為您自己的使用者名稱)

    您可以透過瀏覽器造訪 https://#:8080docker tag 指令來標記 Docker 鏡像。Docker 標記允許您標籤和版本化您的鏡像。

    docker tag <YOUR_DOCKER_USERNAME>/docker-quickstart <YOUR_DOCKER_USERNAME>/docker-quickstart:1.0 
    
  • 最後,使用 docker push 指令將新建立的鏡像推送至您的 Docker Hub 儲存庫

    docker push <YOUR_DOCKER_USERNAME>/docker-quickstart:1.0
    
  • 開啟 Docker HubScreenshot of the Docker Hub page that displays the newly added image tag

  • 在本逐步解說中,您註冊了一個 Docker 帳戶,建立了您的第一個 Docker Hub 儲存庫,並建置、標記和推送了一個容器鏡像至您的 Docker Hub 儲存庫。

    其他資源

    後續步驟

    現在您已了解容器和鏡像的基礎知識,您已準備好學習 Docker Compose。