什麼是註冊中心?
解釋
既然您知道了什麼是容器映象以及它是如何工作的,您可能會想——這些映象存放在哪裡?
嗯,您可以將容器映象儲存在您的計算機系統上,但如果您想與朋友分享或在另一臺機器上使用它們呢?這就是映象註冊中心(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)這兩個術語,好像它們可以互換使用。儘管它們相關,但並不完全相同。
註冊中心是儲存和管理容器映象的集中式位置,而倉庫是註冊中心內相關容器映象的集合。可以把它想象成一個資料夾,您可以在其中根據專案組織您的映象。每個倉庫包含一個或多個容器映象。
下圖顯示了註冊中心、倉庫和映象之間的關係。
注意使用免費版的 Docker Hub,您可以建立一個私有倉庫和無限個公共倉庫。有關更多資訊,請訪問 Docker Hub 訂閱頁面。
試一試
在這個實踐操作中,您將學習如何構建 Docker 映象並將其推送到 Docker Hub 倉庫。
註冊免費的 Docker 帳戶
如果您還沒有建立 Docker 帳戶,請前往 Docker Hub 頁面註冊一個新的 Docker 帳戶。
您可以使用您的 Google 或 GitHub 帳戶進行身份驗證。
建立您的第一個倉庫
登入 Docker Hub。
選擇右上角的 Create repository 按鈕。
選擇您的名稱空間(很可能是您的使用者名稱),並輸入
docker-quickstart
作為倉庫名稱。將可見性設定為 Public(公開)。
選擇 Create 按鈕以建立倉庫。
就這樣。您已成功建立了您的第一個倉庫。🎉
這個倉庫現在是空的。您現在將透過推送一個映象來填充它。
使用 Docker Desktop 登入
- 如果尚未安裝,請下載並安裝 Docker Desktop。
- 在 Docker Desktop 圖形介面中,選擇右上角的 Sign in(登入)按鈕。
克隆 Node.js 示例程式碼
為了建立映象,您首先需要一個專案。為了讓您快速入門,您將使用一個位於 github.com/dockersamples/helloworld-demo-node 的示例 Node.js 專案。這個倉庫包含一個構建 Docker 映象所需的預構建 Dockerfile。
不用擔心 Dockerfile 的具體細節,您將在後面的章節中學到這些。
使用以下命令克隆 GitHub 倉庫:
git clone https://github.com/dockersamples/helloworld-demo-node
導航到新建立的目錄中。
cd helloworld-demo-node
執行以下命令來構建一個 Docker 映象,將 `YOUR_DOCKER_USERNAME` 替換為您的使用者名稱。
docker build -t <YOUR_DOCKER_USERNAME>/docker-quickstart .
注意請確保在 `docker build` 命令的末尾包含點(.)。這會告訴 Docker 在哪裡找到 Dockerfile。
執行以下命令列出新建立的 Docker 映象:
docker images
你將看到類似以下的輸出:
REPOSITORY TAG IMAGE ID CREATED SIZE <YOUR_DOCKER_USERNAME>/docker-quickstart latest 476de364f70e 2 minutes ago 170MB
透過執行以下命令啟動一個容器來測試該映象(將使用者名稱替換為您自己的使用者名稱):
docker run -d -p 8080:8080 <YOUR_DOCKER_USERNAME>/docker-quickstart
您可以透過在瀏覽器中訪問 https://:8080 來驗證容器是否正常工作。
使用 `docker 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 Hub 並導航到您的倉庫。導航到 Tags(標籤)部分,檢視您新推送的映象。
在這個演練中,您註冊了一個 Docker 帳戶,建立了您的第一個 Docker Hub 倉庫,並構建、標記了一個容器映象,然後將其推送到了您的 Docker Hub 倉庫。
其他資源
後續步驟
既然您已經瞭解了容器和映象的基礎知識,您就可以開始學習 Docker Compose 了。
什麼是 Docker Compose?