2017-06-06 3 views
2

私はマイクロサービスの初心者であり、今日のAWSの最も厄介なものに数時間を費やしましたが、次のステップは非常に小さいと思われますそうでなければそれを動作させるために数時間かかるかもしれません。ログインしないでAWS EC2インスタンスにドッキング・コンテナをデプロイ

そこで、nanoインスタンスをsshにデプロイしました。セキュリティグループを修正するために実際にそれをやり直さなければならなかったが、とにかくそれは最終的に働いた。 scpを使用して、私のドッカー画像を指示通りにheredocker saveで画像にローカルに書き出し、docker loadscpをアップロードするまで15分待ってからリモートでシステムに入れてください。次に、入力されたドッカーがコマンドプロンプトで実行されます。

アップロードされたものの、実行されなかったように、最後の3日間に2回試みられたAWSコンソールからこれを行うことができなかったこれらの(Linux)端末対策に頼っていました。

docker run my_imageと入力すると幻想的に実行され、そこにはコマンドdocker imagesdocker ps -aの両方が表示されます。

しかし、AWSインスタンスのコマンドプロンプトは実行中にビジー状態です。ターミナルウィンドウを閉じると必ず消滅します。私はそれがそこで動作することを知ったので、どのように私はそれを展開することができます、すなわちそれを実行させ、1ヶ月間、またはその後の通知まで実行し続けますか?私はそれが '仕事の定義'と呼ばれる何らかの種類のjsonファイルを必要とするかもしれないと思うが、実際には次に何をするべきか全く分かっていない。このタスク定義と残りのすべてのタスクは、インスタンスにログインした端末内から実行できますか?

+1

@nathanpeckから-dフラグの答えは正確にあなたがあなたの最後の段落に記述から – NHol

答えて

2

私は間違っていくつかのことを参照してください。

  • あなたが代わりに画像をSCPingのドッカーレジストリサービスを使用する必要があります。 AWSにはEC2 Container Registryがあります。また、Docker Hubも使用できます。これにより、イメージをインスタンスに簡単に取り込むことができます。

  • コンソールを使用してコンテナを開始できなかった理由はわかりません。私はあなたがAWS ECSを使用していると仮定しますか? troubleshooting guideを試すと、タスクが実行されなかった理由がわかります。

  • バックグラウンドではなく、フォアグラウンド(あなたのシェルに接続)でドッキング用のコンテナを開始しているようです。ドッカーの実行コマンドにthe -d flagを追加して、バックグラウンドでコンテナを実行してSSHセッションを閉じることができます。コンテナ内のアプリケーションプロセスがクラッシュした場合でも、コンテナは停止します。これは、AWS ECSなどのオーケストレーターを使用して、特定の数のタスクを常に実行しようとするサービスを定義する1つの理由です。 ECSは、ドッカーコンテナをインスタンスに取得し、バックグラウンドで自動的に起動するのにも役立ちます。

+0

感謝をしたいものです! '-d'フラグが機能しました。ターミナルで起動し、フォアグラウンドではなくバックグラウンドでフラグを立てることができます。私はその後ログアウトし、ターミナルを閉じ、AWSコンソールを閉じて、サービスはまだうまく動いていたので、再度ログインし、再び停止するために 'docker stop'を使用しなければなりませんでした。 "オーケストレーターAWS ECS"はこのインスタンスの端末の内部から何らかの形で実行できますか?プロセスがクラッシュした場合、コンテナが停止した場合は、それ以外の場合は十分に堅牢でない可能性があります。 – cardamom

+1

AWS ECSは、インスタンス上で実行されるエージェントを使用してインスタンスを外部制御します。 AWS ECSは自動的にコンテナを再起動するため、手動で何かを再起動する必要はありません。また、AWS ECSへの簡単なAPIコールを作成して、コンテナを更新します。AWS ECSは、「コンテナのうち5つを使用可能領域に分散して開始し、それらを保持する」などの高レベルの指示に応答して、AWS ECSがインスタンスのフリート全体を制御し、コンテナを開始および停止するため、実行中 " – nathanpeck

+0

ECS(これは私が使い方を学んだこと)が管理しているインスタンスを管理したり、ここにコマンドを入力したりすることなく、約1週間は完璧に実行されています。あなたはAWS ECSへの簡単なAPI呼び出しをしてコンテナを更新すると思います。コンテナを更新(再プッシュ)するたびに、タスクとクラスタも更新します。 AWSにログインしたりタスクやクラスタに触れることなくコンテナの再押しを続けることができるかもしれないと思われるかもしれません。 – cardamom

関連する問題