什麼是 Registry(登錄檔)?

說明

現在您已經了解什麼是容器映像檔及其運作方式,您可能會好奇——這些映像檔存放在哪裡?

其實,您可以將容器映像檔儲存在自己的電腦系統中,但如果您想與朋友分享或在另一台機器上使用它們呢?這就是映像檔登錄檔 (Registry) 的用處所在。

映像檔登錄檔是一個集中式的位置,用於儲存和分享您的容器映像檔。它可以是公開的,也可以是私有的。Docker Hub 是一個任何人都可以使用的公開登錄檔,也是預設的登錄檔。

雖然 Docker Hub 是一個熱門的選擇,但現今還有許多其他可用的容器登錄檔,包括 Amazon Elastic Container Registry (ECR)Azure Container Registry (ACR) 以及 Google Container Registry (GCR)。您甚至可以在本機系統或企業內部執行私有登錄檔,例如 Harbor、JFrog Artifactory、GitLab Container Registry 等。

登錄檔 (Registry) 與儲存庫 (Repository) 的區別

在使用登錄檔時,您可能會聽到「登錄檔 (registry)」和「儲存庫 (repository)」這兩個詞好像可以互換使用。儘管它們相關,但它們並不完全相同。

登錄檔 (Registry) 是一個集中存放和管理容器映像檔的位置,而 儲存庫 (Repository) 則是登錄檔中一組相關容器映像檔的集合。您可以將其想像成一個用來根據專案組織映像檔的資料夾。每個儲存庫都包含一個或多個容器映像檔。

下圖展示了登錄檔、儲存庫和映像檔之間的關係。

IIIIImmmmmaaaaagggggeeeeeR::R:::eeRpppppppeorrorrrgsoosoooiijjijjjsteeteeetoccocccrrttrtttyy--y---aabbbA::B:::vvvvv12112.....00010
注意

您可以使用免費版的 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 帳號進行驗證。

建立您的第一個儲存庫

  1. 登入 Docker Hub

  2. 選擇右上角的 Create repository (建立儲存庫) 按鈕。

  3. 選擇您的命名空間 (通常是您的使用者名稱),並輸入 docker-quickstart 作為儲存庫名稱。

    Screenshot of the Docker Hub page that shows how to create a public repository
  4. 將可見度設定為 Public (公開)。

  5. 選擇 Create (建立) 按鈕以建立儲存庫。

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

這個儲存庫目前是空的。您現在將透過推送一個映像檔到該儲存庫來完成設定。

使用 Docker Desktop 登入

  1. 如果尚未安裝,請下載並安裝 Docker Desktop。
  2. 在 Docker Desktop 圖形介面中,選擇右上角的 Sign in (登入) 按鈕。

複製範例 Node.js 程式碼

為了建立映像檔,您首先需要一個專案。為了讓您快速上手,您將使用位於 github.com/dockersamples/helloworld-demo-node 的 Node.js 範例專案。該儲存庫包含建置 Docker 映像檔所需的預設 Dockerfile。

不用擔心 Dockerfile 的細節,您將在稍後的章節中學習到這些。

  1. 使用以下指令複製 GitHub 儲存庫:

    git clone https://github.com/dockersamples/helloworld-demo-node
    
  2. 進入剛建立的目錄。

    cd helloworld-demo-node
    
  3. 執行以下指令來建置 Docker 映像檔,將 YOUR_DOCKER_USERNAME 替換為您的使用者名稱。

    docker build -t <YOUR_DOCKER_USERNAME>/docker-quickstart .
    
    注意

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

  4. 執行以下指令來列出剛建立的 Docker 映像檔:

    docker images
    

    您將會看到類似下方的輸出

    REPOSITORY                                 TAG       IMAGE ID       CREATED         SIZE
    <YOUR_DOCKER_USERNAME>/docker-quickstart   latest    476de364f70e   2 minutes ago   170MB
    
  5. 透過執行以下指令啟動容器來測試映像檔 (將使用者名稱替換為您自己的):

    docker run -d -p 8080:8080 <YOUR_DOCKER_USERNAME>/docker-quickstart 
    

    您可以透過瀏覽器訪問 https://:8080 來驗證容器是否正常運作。

  6. 使用 docker tag 指令來標記 (tag) Docker 映像檔。Docker 標籤允許您標記映像檔並進行版本管理。

    docker tag <YOUR_DOCKER_USERNAME>/docker-quickstart <YOUR_DOCKER_USERNAME>/docker-quickstart:1.0 
    
  7. 最後,現在是時候使用 docker push 指令將剛建置的映像檔推送到您的 Docker Hub 儲存庫了:

    docker push <YOUR_DOCKER_USERNAME>/docker-quickstart:1.0
    
  8. 開啟 Docker Hub 並瀏覽至您的儲存庫。前往 Tags (標籤) 區段,即可看到您剛推送的映像檔。

    Screenshot of the Docker Hub page that displays the newly added image tag

在本指南中,您註冊了 Docker 帳號,建立了您的第一個 Docker Hub 儲存庫,並建置、標記了容器映像檔,隨後將其推送到了您的 Docker Hub 儲存庫。

其他資源

下一步

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

什麼是 Docker Compose?
© . This site is unofficial and not affiliated with Kubernetes or Docker Inc.