如何使用私有AWS容器注册表中的Docker容器创建AWS Elastic Beanstalk实例
用AWS ECR容器创建Elastic Beanstalk实例
下面分别介绍通过控制台、AWS CLI、EB CLI三种方式的操作步骤:
一、AWS控制台操作
- 编写
Dockerrun.aws.json配置文件
这个文件是EB识别ECR镜像的核心,格式示例如下,替换成你自己的ECR镜像地址和容器端口:
{ "AWSEBDockerrunVersion": "1", "Image": { "Name": "123456789012.dkr.ecr.us-east-1.amazonaws.com/your-image:latest", "Update": "true" }, "Ports": [ { "ContainerPort": "80" } ] }
- 创建EB环境
- 打开Elastic Beanstalk控制台,点击「创建应用」。
- 填写应用名称,选择「Web服务器环境」,进入平台选择环节。
- 平台类型选「Docker」,推荐选「Docker running on 64bit Amazon Linux 2」系列的栈版本。
- 到「应用代码」步骤,选择「上传代码」,点击「上传」按钮,选中刚才创建的
Dockerrun.aws.json文件,确认后点击「创建环境」。 - 等待环境部署完成,EB会自动拉取你的ECR镜像并启动容器。
二、AWS CLI操作
准备
Dockerrun.aws.json文件(同控制台步骤的格式),并上传到一个S3桶中。创建EB应用
aws elasticbeanstalk create-application --application-name your-app-name
- 创建并部署环境
先通过以下命令查询可用的Docker栈版本:
aws elasticbeanstalk list-available-solution-stacks | grep "Docker running on 64bit Amazon Linux 2"
然后用查到的栈名称执行创建命令:
aws elasticbeanstalk create-environment \ --application-name your-app-name \ --environment-name your-env-name \ --solution-stack-name "64bit Amazon Linux 2 v3.5.4 running Docker" \ --source-bundle S3Bucket=your-s3-bucket-name,S3Key=Dockerrun.aws.json
三、EB CLI操作
- 初始化EB CLI环境
在本地新建一个空目录,执行初始化命令:
eb init
按照提示选择AWS区域、输入应用名称,选择Docker作为平台类型。
在当前目录放入
Dockerrun.aws.json文件(同前面的格式)。创建并部署EB环境
eb create your-env-name
EB CLI会自动完成配置文件上传、环境创建和镜像部署的全流程。
注意事项
- EB环境使用的IAM角色需要具备ECR访问权限,默认的
AWSElasticBeanstalkWebTier角色已经包含AmazonEC2ContainerRegistryReadOnly策略,自定义角色需要手动添加该权限。 - ECR镜像所在区域要和EB环境区域一致,否则需要额外配置跨区域访问权限。
内容的提问来源于stack exchange,提问作者Primico
相关产品推荐
相关产品推荐

