私はドッカーには新しく、簡単な部分が見つからない可能性があります。ここに私のシナリオがあります。私はコマンド 'docker run -it ubuntu:14.04'でコンテナを開始しました。その後、Ctrl + P + Qを押して、コンテナが動作し続けるように終了しました。私はdocker psと確認し、コンテナが走っているのを見ました。次に、私は再び 'docker exec -it bash'というコンテナに入った。これは再び容器の中に私を連れて行った。今すぐ 'exit'コマンドを入力すると、コンテナから出てきますが、コンテナはまだ実行モードです。通常、exitコマンドを使用すると、コンテナは停止します。なぜこれが起こっているのか?終了コマンドの後でもドッカーコンテナが実行されています
0
A
答えて
2
コンテナの実行ステータスは、/ withに対して作成された初期プロセスに関連付けられています。
docker run
を実行すると、いくつかの初期プロセスで新しいコンテナが作成されます。そのプロセスが終了すると、コンテナ全体が停止します。その初期プロセスがbash
であり、それがexit
の場合、コンテナ自体が終了します。
docker exec
は、実行中のコンテナの内部で新しいプロセスを開始します。そのプロセスが終了すると、コンテナは引き続き実行されます。
対話型bash
シェルにexit
と入力すると、そのシェルが終了します。同じコンテナ内で実行されている他のプロセスには影響しません(ホストOSの1つの端末ウィンドウを閉じることは他のプロセスには影響しません)。
0
あなたのケースではexit
コマンドを使用すると、コンテナは/bin/bash/
実行可能ファイルのみを停止します。おそらく、NGINXやApacheのような他のアプリケーションがコンテナ内で動作しているため、シャットダウンしません。
関連する問題
- 1. 終了してもアプリケーションが実行されていますか?
- 2. ジョブを実行してもsshコマンドが終了しない
- 3. スレッドは終了後にもう一度実行されます
- 4. メインスレッドがDjangoを使用して終了した後でもスレッドが実行されています
- 5. Pythonで実行中のコマンドを終了しています
- 6. BroadcastRexceiverの実行後もAndroidプロセスが終了しない
- 7. アプリケーション終了後にMicrosoft Outlook 2010スクリプトが実行されない
- 8. 前のコマンドが終了した後に次のコマンドを実行してください
- 9. Pythonプログラムの終了後もWebカメラが保持されます
- 10. 終了後に実行ダイアログ
- 11. トランザクション終了後でもデータがグラフに表示されない
- 12. 「終了」で何が実行され、終了時にオブジェクトファイナライザを実行できないのですか? Ruby
- 13. アプリケーション終了後にJNIメソッドが実行される
- 14. メソッドが終了した後にプログラムが実行され続けます
- 15. 同時コマンドを実行して終了すると終了する
- 16. プロセスが終了したときにコマンドを実行します。
- 17. ビルド後のイベントでバッチファイルを実行中:エラー46コマンド....終了コード9009で終了する
- 18. アプリケーションが正しく終了せず、バックグラウンドで実行されています
- 19. Android-Studio:「Gradleが実行されています。プロジェクトを終了しますか?」
- 20. アプリケーションを終了してもアンドロイドがバックグラウンドサービスを実行しています
- 21. アニメーション終了後のJavaScriptの実行アクション
- 22. キューは正常に実行されます。休憩の後に終了する代わりに終了する
- 23. doループの後にスクリプトが途中で終了します。最後の "echo"は実行されません。
- 24. 終了ビューの完了ブロックが実行されると、 Swift
- 25. すべてのコマンドが実行される前にWindowsバッチ.batが終了しました
- 26. リモートコマンドを実行した後でsshセッションが終了しない
- 27. データの最後の行で終了する終了行指定
- 28. 組み込みTclランタイムによって実行されるハンドル終了コマンド
- 29. UIAlertControllerは終了後も再表示されます
- 30. C#アプリケーション終了後もタスクマネージャに表示されます。
ありがとうございます –