使用 Docker 時,開發人員會建立應用程式或服務,並將其及其相依性封裝至容器映像。 映像是應用程式或服務和其設定及相依性的靜態表示法。
若要執行應用程式或服務,系統會具現化應用程式的映像,以建立將在 Docker 主機上執行的容器。 容器一開始會在開發環境或計算機中進行測試。
開發人員應該將映像存儲在容器映像庫中,它作為映像的庫,並且在部署到生產協作器時需要使用。 Docker 會透過 Docker Hub 維護公用登錄;其他廠商提供不同映像集合的登錄,包括 Azure Container Registry。 或者,企業可以在內部伺服器上設置自己的 Docker 映像檔私人倉庫。
圖 2-4 顯示 Docker 中的映像和登錄與其他元件的關係。 它也會顯示供應商的多個註冊選項。
圖 2-4。 Docker 詞彙和概念的分類
登錄就像一個書架,其中會儲存映像,並可供提取來建置容器以執行服務或 Web 應用程式。 本地托管和公共云上有私人 Docker 註冊表。 Docker Hub 是 Docker 維護的公用登錄,沿著 Docker Trusted Registry 提供企業級解決方案,Azure 提供 Azure Container Registry。 AWS、Google 和其他專案也有容器登錄。
將映像放在註冊表中可讓您儲存靜態且不可變的應用程式位元,包括在架構層級的所有相依性。 這些映像接著可以在多個環境中版本化並部署,從而提供一致的部署單位。
建議在下列情況下使用私人映像檔案庫,不論是裝載於內部部署或雲端中:
您的映像不得因為機密性而公開共用。
您想要在映像與所選部署環境之間有最低的網路等待時間。 例如,如果您的生產環境是 Azure 雲端,您可能想要將映像儲存在 Azure Container Registry 中,讓網路等待時間降到最低。 同樣地,如果您的生產環境是內部部署環境,您可能想要在同一個局域網路內提供內部部署 Docker 信任登錄。