Amazon web services 从用户数据重启ecs代理

Amazon web services 从用户数据重启ecs代理,amazon-web-services,docker,amazon-ec2,amazon-ebs,amazon-ecs,Amazon Web Services,Docker,Amazon Ec2,Amazon Ebs,Amazon Ecs,我将EBS安装到AWS中启用ecs的实例 要使EBS对docker可见,必须重新启动docker守护程序。我向用户数据中添加了适当的命令。但是我无法从用户数据重新启动ecs代理docker容器 以下是我的用户数据: #!/bin/bash echo ECS_CLUSTER=MYCLUSTER>> /etc/ecs/ecs.config mkfs -t ext4 /dev/sdb mkdir /db/ mount /dev/sdb /db/ service docker stop se

我将EBS安装到AWS中启用ecs的实例

要使EBS对docker可见,必须重新启动docker守护程序。我向用户数据中添加了适当的命令。但是我无法从用户数据重新启动ecs代理docker容器

以下是我的用户数据:

#!/bin/bash
echo ECS_CLUSTER=MYCLUSTER>> /etc/ecs/ecs.config
mkfs -t ext4 /dev/sdb
mkdir /db/
mount /dev/sdb /db/
service docker stop
service docker start 
docker start ecs-agent
在SSH上,我可以看到ecs代理容器已经创建,但它没有运行。当我手动启动容器时,它正在工作。在实例启动期间启动它的正确方式是什么?我的用户数据脚本缺少什么


我需要创建一个启动配置,以便在我的自动缩放组中使用。实例应该启用EBS并对docker可见。

如果需要重新启动docker守护程序,那么您可能正在处理现有的EC2实例。在这种情况下,用户数据脚本将不会帮助您,因为根据定义,它们“仅在启动实例的第一个启动周期内运行”

至于在实例启动时如何正确启动ECS代理,取决于您运行的是哪个发行版。对于Amazon Linux实例,建议使用
ecs init
包:

sudo yum install -y ecs-init
sudo service docker start
sudo start ecs

(如果将其放在用户数据脚本中,请不要使用
sudo

如果需要重新启动Docker守护程序,则可能是在处理现有的EC2实例。在这种情况下,用户数据脚本将不会帮助您,因为根据定义,它们“仅在启动实例的第一个启动周期内运行”

至于在实例启动时如何正确启动ECS代理,取决于您运行的是哪个发行版。对于Amazon Linux实例,建议使用
ecs init
包:

sudo yum install -y ecs-init
sudo service docker start
sudo start ecs

(如果将其放入用户数据脚本中,请不要使用
sudo

谢谢。我的阿美正在睡觉。因此,我不必执行
yum安装
。但我尝试了另外两个步骤。Docker重新启动不干净。ecs代理启动似乎失败,出现一些devicemapper错误。您的意思是您正在使用一个?在这种情况下,
ecs init
是预安装的,可以处理ecs代理初始化,所以您不必担心在实例启动时启动它的正确方式。新的AMI使用
systemctl start ecs
。谢谢。我的阿美正在睡觉。因此,我不必执行
yum安装
。但我尝试了另外两个步骤。Docker重新启动不干净。ecs代理启动似乎失败,出现一些devicemapper错误。您的意思是您正在使用一个?在这种情况下,
ecs init
是预安装的,可以处理ecs代理初始化,因此您不必担心在实例启动时启动它的正确方式。新AMI使用
systemctl start ecs