ホストの変更と分離するために、Dockerコンテナに複数のサービスを持つCentOSを実行しているサーバーがあります。
先週の金曜日にCentOSを更新した後、サービスの1つが起動し、すぐに終了しました。他の15以上のサービスは大丈夫です。
コンテナ設定を複製してコンテナ名を変更した後、同じ問題を再構築しました。コンテナが起動され、メッセージなしで終了します。
コンテナは次から派生します。David Personetteのサンバコンテナ。これで終了しますが、使用されない実際のコマンドは次のとおりです。
exec ionice -c 3 smbd -FS
Dockerをダウングレードする必要がありますか?副作用がありますか?もう一度動作させる他の方法はありますか?我々は、オペレーティングシステムを抽象化するためにコンテナを選択しました。この抽象化は想像ほど良くないですか?
答え1
デバッグレベルを上げないと、コンテナはコメントなしで終了します。このようなものを使用できます--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を停止してすべての履歴を消去する必要があるため、あまりお勧めできません。