建置並推送您的第一個映像檔
說明
既然您已更新 待辦事項應用程式,您就可以為應用程式建立容器映像檔並在 Docker Hub 上分享它。 為此,您需要執行以下操作
- 使用您的 Docker 帳戶登入
- 在 Docker Hub 上建立映像檔倉庫
- 建置容器映像檔
- 將映像檔推送至 Docker Hub
在您開始動手操作指南之前,以下是一些您應該瞭解的核心概念。
容器映像檔
如果您不熟悉容器映像檔,可以將它們視為標準化套件,其中包含執行應用程式所需的一切,包括其檔案、設定和依賴項。 然後可以發佈這些套件並與他人分享。
Docker Hub
要分享您的 Docker 映像檔,您需要一個地方來儲存它們。 這就是倉庫的用途。 雖然有許多倉庫,但 Docker Hub 是映像檔的預設和首選倉庫。 Docker Hub 提供了一個您可以儲存自己的映像檔的地方,也可以找到其他人的映像檔來執行或用作您自己映像檔的基礎。
在 使用容器進行開發 中,您使用了以下來自 Docker Hub 的映像檔,每個映像檔都是 Docker 官方映像檔
- node - 提供 Traefik,這是一個現代的 HTTP 反向代理和負載平衡器,可根據路由規則將請求路由到適當的容器。
探索完整的 Docker 官方映像檔
試用看看
在本實作指南中,您將學習如何登入 Docker Hub 並將映像檔推送到 Docker Hub 儲存庫。
使用您的 Docker 帳戶登入
若要將映像檔推送到 Docker Hub,您需要使用 Docker 帳戶登入。
開啟 Docker 儀表板。
選擇右上角的「登入」。
如果需要,請建立一個帳戶,然後完成登入流程。
完成後,您應該會看到「登入」按鈕變成個人圖片。
建立映像檔倉庫
現在您已擁有帳戶,您可以建立映像檔儲存庫。如同 Git 儲存庫存放原始碼一樣,映像檔儲存庫存放容器映像檔。
前往 Docker Hub
。選擇「建立儲存庫」。
在「建立儲存庫」頁面上,輸入以下資訊
- 儲存庫名稱 -
getting-started-todo-app
- 簡短描述 - 如果您願意,可以輸入描述
- 可見度 - 選擇「公開」以允許其他人提取您自訂的待辦事項應用程式
- 儲存庫名稱 -
選擇「建立」以建立儲存庫。
建置並推送映像檔
現在您已擁有儲存庫,您已準備好建構和推送您的映像檔。一個重要的注意事項是您正在建構的映像檔會延伸 Node 映像檔,這表示您不需要安裝或設定 Node、yarn 等。您可以專注於讓您的應用程式獨特之處。
什麼是映像檔/Dockerfile?
先不深入探討,您可以將容器映像檔視為包含執行流程所需一切的單一軟體包。在本例中,它將包含 Node 環境、後端程式碼和已編譯的 React 程式碼。
任何使用映像檔執行容器的機器,都將能夠執行建構時的應用程式,而不需要在機器上預先安裝任何其他軟體。
Dockerfile
是一個基於文字的指令碼,提供有關如何建構映像檔的指令集。對於此快速入門,儲存庫已包含 Dockerfile。
首先,將專案複製或 下載為 ZIP 檔案
到您的本機電腦。$ git clone https://github.com/docker/getting-started-todo-app
複製專案後,瀏覽至複製建立的新目錄
$ cd getting-started-todo-app
執行以下命令來建構專案,將
DOCKER_USERNAME
換成您的使用者名稱。$ docker build -t <DOCKER_USERNAME>/getting-started-todo-app .
例如,如果您的 Docker 使用者名稱是
mobydock
,您將執行以下命令$ docker build -t mobydock/getting-started-todo-app .
若要驗證映像檔在本機是否存在,您可以使用
docker image ls
命令$ docker image ls
您將看到類似以下的輸出
REPOSITORY TAG IMAGE ID CREATED SIZE mobydock/getting-started-todo-app latest 1543656c9290 2 minutes ago 1.12GB ...
若要推送映像檔,請使用
docker push
命令。請務必將DOCKER_USERNAME
換成您的使用者名稱$ docker push <DOCKER_USERNAME>/getting-started-todo-app
根據您的上傳速度,推送可能需要一些時間。
開啟 Visual Studio Code。在「檔案」選單中,選擇「開啟資料夾」。選擇「複製 Git 儲存庫」並貼上此 URL:https://github.com/docker/getting-started-todo-app
在滑鼠右鍵按一下
Dockerfile
並選擇「建構映像檔...」選單項目。在出現的對話框中,輸入名稱
DOCKER_USERNAME/getting-started-todo-app
,將DOCKER_USERNAME
換成您的 Docker 使用者名稱。按下 Enter 後,您會看到一個終端機出現,建構將在此處進行。建構完成後,您可以關閉終端機。
選擇左側導覽選單中的 Docker 標誌,以開啟 VS Code 的 Docker 擴充功能。
找到您建立的映像檔。它的名稱將是
docker.io/DOCKER_USERNAME/getting-started-todo-app
。展開映像檔以檢視映像檔的標籤(或不同版本)。您應該會看到一個名為
latest
的標籤,這是提供給映像檔的預設標籤。在滑鼠右鍵按一下「latest」項目,然後選擇「推送...」選項。
按下 Enter 確認,然後觀看您的映像檔被推送到 Docker Hub。根據您的上傳速度,推送映像檔可能需要一些時間。
上傳完成後,您可以關閉終端機。
摘要
在繼續之前,請花點時間思考一下這裡發生的事情。在幾分鐘內,您就能夠建構一個打包您的應用程式的容器映像檔,並將其推送到 Docker Hub。
展望未來,您需要記住
Docker Hub 是尋找可信內容的首選 Registry。Docker 提供了一系列可信內容,包含 Docker 官方映像檔、Docker 認證發布者和 Docker 贊助的開源軟體,可以直接使用或作為您自定義映像檔的基礎。
Docker Hub 提供了一個市集來發布您自己的應用程式。任何人都可以創建帳戶並發布映像檔。當您公開發布您創建的映像檔時,私有儲存庫可以確保您的映像檔只能由授權用戶訪問。
使用其他 Registry
雖然 Docker Hub 是預設的 Registry,但 Registry 已標準化,並透過 開放容器標準(Open Container Initiative)
)實現互通操作。這使得公司和組織可以運行自己的私有 Registry。通常,可信內容會從 Docker Hub 鏡像(或複製)到這些私有 Registry 中。
後續步驟
現在您已經構建了一個映像檔,接下來該討論為什麼作為開發人員,您應該了解更多關於 Docker 的知識,以及它將如何幫助您的日常工作。