提示
本內容節錄自《容器化 .NET 應用程式的 .NET 微服務架構》(.NET Microservices Architecture for Containerized .NET Applications) 電子書,可以在 .NET Docs 上取得,或免費下載可供離線閱讀的 PDF。
使用 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 Trusted Registry。