什麼是註冊中心?

解釋

既然您知道了什麼是容器映象以及它是如何工作的,您可能會想——這些映象存放在哪裡?

嗯,您可以將容器映象儲存在您的計算機系統上,但如果您想與朋友分享或在另一臺機器上使用它們呢?這就是映象註冊中心(image 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)這兩個術語,好像它們可以互換使用。儘管它們相關,但並不完全相同。

註冊中心是儲存和管理容器映象的集中式位置,而倉庫是註冊中心內相關容器映象的集合。可以把它想象成一個資料夾,您可以在其中根據專案組織您的映象。每個倉庫包含一個或多個容器映象。

下圖顯示了註冊中心、倉庫和映象之間的關係。

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

使用免費版的 Docker Hub,您可以建立一個私有倉庫和無限個公共倉庫。有關更多資訊,請訪問 Docker Hub 訂閱頁面

試一試

在這個實踐操作中,您將學習如何構建 Docker 映象並將其推送到 Docker Hub 倉庫。

註冊免費的 Docker 帳戶

  1. 如果您還沒有建立 Docker 帳戶,請前往 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` 命令為 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?