2016-11-01 6 views
0

私はドッカーには新しく、簡単な部分が見つからない可能性があります。ここに私のシナリオがあります。私はコマンド 'docker run -it ubuntu:14.04'でコンテナを開始しました。その後、Ctrl + P + Qを押して、コンテナが動作し続けるように終了しました。私はdocker psと確認し、コンテナが走っているのを見ました。次に、私は再び 'docker exec -it bash'というコンテナに入った。これは再び容器の中に私を連れて行った。今すぐ 'exit'コマンドを入力すると、コンテナから出てきますが、コンテナはまだ実行モードです。通常、exitコマンドを使用すると、コンテナは停止します。なぜこれが起こっているのか?終了コマンドの後でもドッカーコンテナが実行されています

答えて

2

コンテナの実行ステータスは、/ withに対して作成された初期プロセスに関連付けられています。

docker runを実行すると、いくつかの初期プロセスで新しいコンテナが作成されます。そのプロセスが終了すると、コンテナ全体が停止します。その初期プロセスがbashであり、それがexitの場合、コンテナ自体が終了します。

docker execは、実行中のコンテナの内部で新しいプロセスを開始します。そのプロセスが終了すると、コンテナは引き続き実行されます。

対話型bashシェルにexitと入力すると、そのシェルが終了します。同じコンテナ内で実行されている他のプロセスには影響しません(ホストOSの1つの端末ウィンドウを閉じることは他のプロセスには影響しません)。

+0

ありがとうございます –

0

あなたのケースではexitコマンドを使用すると、コンテナは/bin/bash/実行可能ファイルのみを停止します。おそらく、NGINXやApacheのような他のアプリケーションがコンテナ内で動作しているため、シャットダウンしません。

関連する問題