簡體   English   中英

如何使用 Amazon linux 2 在 Elastic beanstalk 中使用多容器 docker?

[英]How to use multi container docker in Elastic beanstalk using Amazon linux 2?

目前,Amazon 已棄用Multi-container Docker running on 64bit Amazon Linux需要遷移到Docker running on 64bit Amazon Linux 2 在第一個版本中,我們使用Dockerrun.aws.json v2來管理多容器 docker。 在最新版本( Docker running on 64bit Amazon Linux 2 )中,我們需要使用Dockerrun.aws.json v3或 docker docker-compose 但是沒有可用的示例或博客可用。 我可以獲得工作樣品嗎?

關於在 64 位 Amazon Linux 2 平台上運行的 Elastic Beanstalk 和 Docker。

我也在苦苦掙扎,終於走到了盡頭。 讓我感到困惑的是,文檔讓您看起來可以選擇在您的 EB 應用程序包中使用 Dockerrun.aws.json (v3) 或 docker-compose.yml。

然后你去尋找關於 Dockerrun.aws.json (v3) 的文檔,你在任何地方都找不到它。

這樣做的原因是,您別無選擇。 如果要運行多個容器,則必須在應用程序包中包含 docker-compose.yml。 Dockerrun.aws.json (v3) 允許您做的唯一一件事是將 s3 存儲桶和密鑰配置到容器存儲庫身份驗證文件“.dockercfg”的位置

這本質上是“Dockerrun.aws.json (v3)”的文檔,它不支持類似於“Dockerrun.aws.json (v2)”的任何內容

{
  "AWSEBDockerrunVersion": "3",
  "Authentication": {
    "bucket": "DOC-EXAMPLE-BUCKET",
    "key": "mydockercfg"
  }
}

包含 docker-compose.yml 並且僅當 docker 映像位於私有存儲庫中時,您才需要 dockerrun.aws.json (v3)。

https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/single-container-docker-configuration.html

根據 AWS Docs, 在 Amazon Linux 上運行的多容器 Docker可以遷移到 Amazon Linux 2 上的 ECS

與使用 Elastic Beanstalk 控制台相比,使用 CLI 應用此選項似乎更容易,因為它需要 1 個命令:

aws elasticbeanstalk update-environment \
--environment-name ${my-env} \
--solution-stack-name "64bit Amazon Linux 2 ${version} running ECS" \
--region ${my-region}

我建議您首先克隆您要升級的環境,將上面提到的命令應用於這個復制的環境並進行測試,如果一切正常,那么您可以使用藍/綠部署來避免停機。

我希望這可以幫助別人!

@Osain 這是文檔所說的,但這失敗了。 Amazon Linux 2 上的 ECS 旨在成為 Amazon ECS 集群的預置實例。 在 ECS 之前,Elastic Beanstalk 用於部署容器化的 Docker 容器。 但是,現在使用 AWS ECS,應該使用 AWS ECS 集群部署容器。 為了從 Amazon Linux 1 上已棄用的多容器遷移,我使用 Amazon ECS 集群和無服務器 AWS Fargate 來提供可以托管正在部署的容器的計算實例(另一種方法是通過以下方式預先在 Amazon Linux 2 上預置 ECS使用此操作系統啟動 EC2 實例)。 使用 AWS Fargate 的一個優勢是我不必提前預置 EC2 實例。 擴展和擴展由 AWS ECS 集群管理,並由 AWS Fargate 實施。 (在預置的 EC2 上,服務也可以自動擴展,但您仍然需要為運行的 EC2 機器付費)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM