2017-06-21 10 views
0

マシン上で複数のドッキングプロセスが実行されている場合、そのドッキングプロセスを監視して、一定のメモリしきい値を超えるとドッカープロセスを再起動します。 ドロッカーをメモリしきい値に達するとプロセスを再開させることができますか? 私のオプションは何ですか?一定量のメモリを消費したときにドッカーを再起動する

おかげ

アレックス

答えて

3

あなたは、リソースの使用状況を監視するためのシェルスクリプトを作成し、それはあなたの記憶の限界に達したときにドッカーデーモンを再起動しますが、私はそれが実際には良い方法ではないと思うんでした。

このコマンドを使用すると、コンテナがメモリ使用量順に表示されます。どのコンテナがあまりにも多くのメモリを使用しているのかを見つけて、それが起こっている理由を見つけようとします。

docker stats --no-stream --format "table {{.Name}}\t{{.Container}}\t{{.CPUPerc}}\t{{.MemUsage}}" | sort -k 4 -h

あなたのコンテナのメモリ消費量が通常ですが、あなたはそれを制限する場合も、各コンテナに割り当てられたリソースを制限することができます。 docker runにオプション--memoryを使用してこれを行うことができます。メモリの制限の詳細については

、ドッカードキュメントでこの情報を確認してください。https://docs.docker.com/engine/admin/resource_constraints/

が、これは、幸運をお役に立てば幸いです。

編集:あなたの応答に応答して、コンテナにメモリが不足している場合は、カーネルによって自動的に強制終了されます。オプション--memoryを使用してメモリ制限を構成し、再起動ポリシーを--restart=alwaysに設定できます。この方法では、コンテナはOOM(メモリ不足)エラーによって自動的に強制終了されますが、エラーが発生しても再起動のポリシーが再開されるため、再起動されます。

+0

私は長い間、 'docker'内に' python'プロセスを実行しています。時間がたつにつれて、それを解放せずにますます多くのメモリを消費します。 (https://stackoverflow.com/a/1316799/248723) 時々再開したい。 ' - memory 'を' docker run'に渡すと、 'docker'はコンテナ内のプロセスがメモリ不足になったときに何をしますか? – AlexV

+0

私の編集を確認してください、あなたの問題を解決するはずです。それが起こった場合、答えを確認してください:) – kstromeiraos

関連する問題