0

AWSのEBSからecs対応インスタンスをマウントしました。ユーザデータからecs-agentを再起動

EBSをドッカーに見えるようにするには、ドッカーデーモンを再起動する必要があります。私はユーザーデータに適切なコマンドを追加しました。しかし、ユーザーデータから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

ありがとう:AmazonでLinuxインスタンスについてECS Developer Guideecs-initパッケージを推奨しています。私のAMIはecs-enabedです。だから私は 'yum install'をしなくてはなりません。しかし、私は他の2つのステップを試しました。ドッカーの再起動はクリーンではありません。 ecs-agentの起動に失敗し、devicemapperエラーが発生します。 – Nataraj

+0

[Amazon ECS最適化AMI](http://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html)を使用しているということですか?その場合、 'ecs-init'はあらかじめインストールされ、ECSエージェントの初期化を処理するので、インスタンスの起動時に起動する正しい方法について心配する必要はありません。 – rbarni

関連する問題