Docker は init を実行していません。そのため、サービスは起動時に開始されません。Lxc は lxc-start 中に init を実行します。Docker は lxc を使用しているため、init を実行していません。init を実行せず、デーモン化のために Supervisord に依存する利点は何ですか?
1283 次
2 に答える
0
利点は、コンテナを軽量に保つことです。実行するプロセスを決定するだけで、それ以上のプロセスはありません。そうすれば、docker はコンテナーを非常に高速に起動できます。
ちなみに、supervisord には依存しません。たとえば、コマンドに入れる複雑なシェル スクリプトを作成することができます。
docker のアプリケーションの 1 つは、実行可能ファイルとしてセットアップすることです。たとえば、単体テストまたは統合テストを実行するイメージを作成できます。さて、それらのそれぞれが、使用しない数十のサービスを実行することを望まないでしょうか?
于 2013-12-20T15:30:33.630 に答える
0
/sbin/init の実行は lxc-start のデフォルトの動作であり、コマンドの実行を待機していると思います。docker には run コマンドのデフォルトのコマンドパラメーターはありません。
docker で init を明示的に実行できます。
docker run ubuntu /sbin/init
個人的には、この動作が気に入っています。いくつかの apss 関連プロセスにコンテナーを使用することを好み、init を開始する必要はありません。
于 2013-12-19T15:04:46.113 に答える