Sambaを含むDockerコンテナーがメッセージなしで終了する


8

CentOSを実行するサーバーがあり、Dockerコンテナーにはホストの変更から分離するためのサービスがいくつかあります。

先週の金曜日、CentOSでアップデートを実行しました。それ以来、サービスの1つが開始され、すぐに終了します。他の15以上のサービスは問題ありません。

コンテナーのセットアップを複製し、コンテナー名を変更して、同じ問題でコンテナーを再構築しました。コンテナーが開始し、メッセージなしで終了します。

コンテナーは、David Personetteのsambaコンテナーから派生してます。現在終了しているが使用しなかった実際のコマンドは次のとおりです。

exec ionice -c 3 smbd -FS

dockerをダウングレードする必要がありますか?これを再度実行するために他にできることはありますか?コンテナーを選択してオペレーティングシステムから抽象化しましたが、その抽象化は期待どおりではありませんか?


コンテナーでシェルを実行し、そのコマンドを手動で実行するとどうなりますか?
ヨルダン

私はそれを試すのに苦労しました、コンテナーにはエントリーポイントがあり、開始するにはコマンドラインパラメーターが必要です。それがうまくいくとすれば、それを本番環境でどのように使用するかわからないでしょう。それは可能ですか?
ジョン

回答:


8

デバッグレベルを上げない限り、コンテナはコメントなしで終了します。のようなものを使用できます--debuglevel=4

それを行ったら、コンテナを再構築して再起動すると、最後に次のようなものが得られます:

Server exit (EOF on stdin)

そしてそれが解決策を指しているので、smbd呼び出しを次のように変更します。

exec ionice -c 3 smbd -FS < /dev/null

コンテナが直接終了することはもうありません。

この後方互換性のない変更の原因は何なのか、また既存のdockerhubエントリに対してこれがテストされなかった理由がわかりません。

1.11にアップグレードすると、2つのコンテナも壊れました。そして、1.10.3にダウングレードすると、恐ろしいCannot stop container .... Container does not exist: container destroyedバグに遭遇しました。私はdockerを停止し、すべての履歴をクリアしなければならなかったので、それを実際にお勧めすることはできません。


これにより、ダウングレードすることなく、昨日問題を解決することができました!
ジョン

1
私はSambaの停止が実際には機能であるとどこかで読んだ。親プロセスが停止したかどうかを検出しようとします(標準入力のEOF)。あなたのソリューションは完璧に機能します。
マーティン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.