从用户数据重新启动ecs-agent

Nat*_*raj 0 amazon-ec2 amazon-ebs amazon-web-services amazon-ecs docker

我将EBS安装到AWS中支持ecs的实例.

为了使Docker可以看到EBS,必须重新启动docker守护程序.我在用户数据中添加了适当的命令.但我无法从用户数据重新启动ecs-agent 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
Run Code Online (Sandbox Code Playgroud)

在SSH上,我可以看到ecs-agent容器已创建,但它没有运行.当我手动启动容器时,它正在工作.在实例启动期间启动它的正确方法是什么?我的用户数据脚本中缺少什么?

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

rba*_*rni 7

如果您需要重新启动Docker守护程序,您可能正在处理现有的EC2实例.在这种情况下,用户数据脚本对您没有帮助,因为根据EC2用户指南,它们"仅在启动实例的第一个引导周期内运行".

至于在实例启动期间启动ECS代理的正确方法,它取决于您正在运行的分发.对于Amazon Linux实例,ECS开发人员指南推荐该ecs-init软件包:

sudo yum install -y ecs-init
sudo service docker start
sudo start ecs
Run Code Online (Sandbox Code Playgroud)

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