0

AWS에서 EBS를 ecs 가능 인스턴스로 마운트했습니다.사용자 데이터에서 ecs-agent를 다시 시작하십시오.

EBS가 도커에게 보이게하려면 docker 데몬을 다시 시작해야합니다. 적절한 명령을 사용자 데이터에 추가했습니다. 그러나 사용자 데이터에서 ecs-agent 고정 컨테이너를 다시 시작할 수 없습니다.

#!/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을 활성화하고 도커에게 표시해야합니다.

답변

3

Docker 데몬을 다시 시작해야하는 경우 기존 EC2 인스턴스를 처리하고있는 것으로 보입니다. 이 경우 사용자 데이터 스크립트는 EC2 User Guide에 따라 "인스턴스가 시작될 때 첫 번째 부팅주기 동안에 만 실행되므로"도움을주지 않습니다.

인스턴스를 실행하는 동안 ECS 에이전트를 시작하는 올바른 방법은 실행중인 배포본에 따라 다릅니다.

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

(당신이 당신의 사용자 데이터 스크립트에 넣고 경우, sudo를 사용하지 않습니다.)

+0

감사 : 아마존 리눅스 인스턴스에 대한 ECS Developer Guideecs-init 패키지를 권장합니다. 내 AMI는 ecs-enabed입니다. 그래서 나는 '냠 설치'를하지 않아도됩니다. 그러나 나는 다른 두 단계를 시도했다. 도커를 다시 시작하면 문제가 해결되지 않습니다. ecs-agent start가 일부 devicemapper 오류로 실패하는 것 같습니다. – Nataraj

+0

당신은 [Amazon ECS에 최적화 된 AMI] (http://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html)를 사용하고 있다는 것을 의미합니까? 이 경우'ecs-init'은 사전 설치되어 ECS 에이전트 초기화를 처리하므로 인스턴스를 시작하는 동안 올바른 방법을 시작할 필요가 없습니다. – rbarni