本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
從 Amazon Linux 上運行的多容器泊塢窗遷移到在 Amazon Linux 2 上運行的 Elastic Beanstalk 泊塢窗
在 64 位元 Amazon Linux 2 平台上ECS執行分支發行之前,Elastic Beanstalk 為具有在 64 位元 Amazon Linux 平台分支上執行之多容器泊塢視窗環境的客戶提供了一個替代的 Amazon Linux 2 遷移途徑。本主題介紹該遷移路徑,並保留作為完成該遷移路徑的所有客戶的參考文件。
現在,我們建議使用以 64 位元 Amazon Linux 平台分支執行之多容器泊塢視窗為基礎之環境的客戶,移轉至 64 位元 Amazon Linux 2 平台分支上ECS執行。與替代遷移路徑不同,此方法會繼續使用 Amazon ECS 協調容器部署到ECS受管 Docker 環境。這方面允許採取更直接的方法。無需變更原始程式碼,並且支援相同的 Dockerrun.aws.json
v2。如需詳細資訊,請參閱在 Amazon 2023 上將您的 Elastic Beanstalk 應用程式從ECS託管多容器泊塢視窗遷移AL1到 ECS。
您可以將在 Amazon Linux 上的多容器泊塢平台上運行的應用程序遷移AMI到 Amazon Linux 2 泊塢平台。Amazon Linux 上的多容器 Docker 平台要求您指定AMI要以容器形式執行的預先建置應用程式映像。遷移之後,您將不再有此限制,因為 Amazon Linux 2 Docker 平台也允許 Elastic Beanstalk 在部署期間建置您的容器映像。您的應用程式將繼續在多容器環境中執行,並可從 Docker Compose 工具獲得額外的好處。
Docker Compose 是定義和執行多容器 Docker 應用程式的工具。若要進一步了解 Docker Compose 及如何安裝,請參閱 Docker 網站的 Docker Compose 的概觀
docker-compose.yml
檔案
Docker Compose 工具會使用 docker-compose.yml
檔案來設定您的應用程式服務。該檔案會取代您的應用程式專案目錄和應用程式原始碼套件中的 Dockerrun.aws.json v2
檔案。您可以手動建立 docker-compose.yml
檔案,並發現針對大部分參數值參考 Dockerrun.aws.json v2
檔案很有幫助。
以下是相同應用程式的 docker-compose.yml
檔案和對應 Dockerrun.aws.json v2
檔案的範例。如需有關 docker-compose.yml
檔案的詳細資訊,請參閱 Compose 檔案參考Dockerrun.aws.json v2
檔案的詳細資訊,請參閱Dockerrun.aws.json v2。
docker-compose.yml |
Dockerrun.aws.json v2 |
||
---|---|---|---|
|
|
其他遷移考量
碼頭 Amazon Linux 2 平台和多容器泊塢視窗 Amazon Linux AMI 平台以不同的方式實現環境屬性。這兩個平台也有不同日誌目錄,Elastic Beanstalk 會為每個容器建立日誌目錄。從 Amazon Linux AMI 多容器泊塢視窗平台遷移後,您需要注意新的 Amazon Linux 2 泊塢平台環境的這些不同實作。
Area | Amazon Linux 2 上包含 Docker Compose 的 Docker 平台 | Amazon Linux 上的多容器泊塢平台 AMI |
---|---|---|
環境屬性 |
為了讓您的容器能夠存取環境屬性,您必須在 |
Elastic Beanstalk 可以直接將環境屬性傳遞給容器。您在容器中執行的程式碼可以存取這些屬性做為環境變數,而無需任何其他組態。 |
日誌目錄 |
對於每個容器,Elastic Beanstalk 會建立名為 |
對於每個容器,Elastic Beanstalk 會建立名為 |
遷移步驟
遷移到 Amazon Linux 2 Docker 平台
-
根據現有的
docker-compose.yml
檔案,為您的應用程式建立Dockerrun.aws.json v2
檔案。如需詳細資訊,請參閱上述章節 docker-compose.yml 檔案。 -
在您的應用程式專案資料夾根目錄中,將
Dockerrun.aws.json v2
檔案取代為您剛剛建立的docker-compose.yml
。您的目錄結構應如下所示。
~/myApplication |-- docker-compose.yml |-- .ebextensions |-- php-app |-- proxy
-
使用 eb init 命令來設定要部署至 Elastic Beanstalk 的本機目錄。
~/myApplication$
eb init -p docker
application-name
-
使用此 eb create 命令建立環境並部署 Docker 影像。
~/myApplication$
eb create
environment-name
-
如果您的應用程式是 Web 應用程式,環境啟動後,請使用 eb open 命令,以在 Web 瀏覽器中檢視該命令。
~/myApplication$
eb open
environment-name
-
您可以使用 eb status 命令來顯示新建立環境的狀態。
~/myApplication$
eb status
environment-name