共享應用程式
現在您已經構建了一個映象,您可以共享它。要共享 Docker 映象,您必須使用 Docker 登錄檔。預設登錄檔是 Docker Hub,您使用的所有映象都來自這裡。
Docker ID
Docker ID 允許您訪問 Docker Hub,它是全球最大的容器映象庫和社群。如果您還沒有,請免費建立一個 Docker ID。
建立倉庫
要推送映象,您首先需要在 Docker Hub 上建立一個倉庫。
註冊 或登入 Docker Hub。
選擇 **建立倉庫** 按鈕。
對於倉庫名稱,使用
getting-started
。確保 **可見性** 為 **公開**。選擇 **建立**。
在下面的影像中,您可以看到來自 Docker Hub 的一個示例 Docker 命令。此命令將推送到此倉庫。


推送映象
在命令列中,執行您在 Docker Hub 上看到的
docker push
命令。請注意,您的命令將包含您的 Docker ID,而不是 "docker"。例如,docker push YOUR-USER-NAME/getting-started
。$ docker push docker/getting-started The push refers to repository [docker.io/docker/getting-started] An image does not exist locally with the tag: docker/getting-started
為什麼它失敗了?推送命令正在查詢名為
docker/getting-started
的映象,但沒有找到。如果您執行docker image ls
,您也不會看到它。要解決此問題,您需要標記您已構建的現有映象以賦予其另一個名稱。
使用命令
docker login -u YOUR-USER-NAME
登入到 Docker Hub。使用
docker tag
命令為getting-started
映象賦予一個新名稱。將YOUR-USER-NAME
替換為您的 Docker ID。$ docker tag getting-started YOUR-USER-NAME/getting-started
現在再次執行
docker push
命令。如果您從 Docker Hub 複製了值,則可以刪除tagname
部分,因為您沒有向映象名稱新增標籤。如果您沒有指定標籤,Docker 將使用名為latest
的標籤。$ docker push YOUR-USER-NAME/getting-started
在新例項上執行映象
現在您的映象已經構建並推送到登錄檔,請嘗試在從未見過此容器映象的全新例項上執行您的應用程式。為此,您將使用 Play with Docker。
注意
Play with Docker 使用 amd64 平臺。如果您使用的是帶有 Apple 晶片的基於 ARM 的 Mac,您需要重新構建映象以使其與 Play with Docker 相容,並將新映象推送到您的倉庫。
要為 amd64 平臺構建映象,請使用
--platform
標誌。$ docker build --platform linux/amd64 -t YOUR-USER-NAME/getting-started .
Docker buildx 還支援構建多平臺映象。要了解更多資訊,請參閱 多平臺映象。
在您的瀏覽器中開啟 Play with Docker。
選擇 **登入**,然後從下拉列表中選擇 **docker**。
使用您的 Docker Hub 帳戶登入,然後選擇 **開始**。
選擇左側邊欄上的 **新增新例項** 選項。如果您沒有看到它,請將瀏覽器稍微放大一點。幾秒鐘後,一個終端視窗將在您的瀏覽器中開啟。
在終端中,啟動您剛剛推送的應用程式。
$ docker run -dp 0.0.0.0:3000:3000 YOUR-USER-NAME/getting-started
您應該會看到映象被拉取下來,最終啟動。
提示
您可能已經注意到,此命令將埠對映繫結到不同的 IP 地址。之前的
docker run
命令將埠釋出到主機上的127.0.0.1:3000
。這次,您使用的是0.0.0.0
。繫結到
127.0.0.1
只將容器的埠公開到環回介面。但是,繫結到0.0.0.0
將容器的埠公開到主機的所有介面,使其可供外界訪問。有關埠對映工作原理的更多資訊,請參閱 網路。
當 3000 徽章出現時,選擇它。
如果 3000 徽章沒有出現,您可以選擇 **開啟埠** 並指定
3000
。
總結
在本節中,您學習瞭如何透過將映象推送到登錄檔來共享您的映象。然後,您轉到一個全新的例項,並能夠執行剛剛推送的映象。這在 CI 管道中很常見,管道將建立映象並將其推送到登錄檔,然後生產環境可以使用最新版本的映象。
相關資訊
下一步
在下一節中,您將學習如何持久化容器化應用程式中的資料。