2017-09-20 14 views
1

ドッカーサービスを実行するためのドッカーマシンのクラスタを持つという概念を本当に楽しんでいます。私は、独特のドッカーコンテナ(ドッカーの秘密など)には利用できない追加の機能も好きです。docker swarmを使って "services"ではなくsingular containerを実行する

しかし、私は本当に長年のサービスの必要はありません。私の使用例は、docker swarmの秘密をロードした秘密を使って、docker swarmを使用して任意の数の有限コマンドを取り込み、同じdockerイメージ上でそれぞれを実行中のdockerコンテナとして実行するためのbashスクリプトを実行することです。

これを行うことはできますか?
私はこのコンテナを長期間使用したくないです。私はそれを実行して、コンテナにロードされたbashスクリプトが終了したら出力を終了します。

答えて

0

One-shot containers on Docker Swarm」のアイデアは、alex ellisから適用できます。

まだサービスを作成する必要はありません。ただし、正しい再起動ポリシーを使用してです。迅速なWebサーバーのインスタンスのために
、:

docker service create --restart-policy=none --name crawler1 -e url=http://blog.alexellis.io -d crawl_site alexellis2/href-counter 

だから、0の再起動ポリシーを設定することで、コンテナはどこか(タスク)として群れの中にスケジュールされます。コンテナが実行され、準備ができたら終了します。

コンテナが正当な理由で起動に失敗した場合、再起動ポリシーはアプリケーションコードが実行されないことを意味します。また、終了コード(ゼロでない場合)と付随するログ出力もすぐに返すことができれば理想的です。

最後の部分については、alexellis/jaasを使用してください。

# jaas -rm -image alexellis2/cows:latest 

-rmフラグがあなたのコンテナを実行するために使用されたスウォームサービスを削除します。

はあなたの最初のワンショットコンテナを実行します。

あなたのコンテナからの終了コードはまた、あなたがecho $?

でそれを確認することができ、利用できるようになります
関連する問題