自由気ままに書いちゃおう

好きなことをつらつらと・・・

【docker】docker run / docker exec時のシェルからの抜けるときのコンテナ状態について

docker runコマンドとdocker execコマンドとで、シェルから抜けたときのコンテナの起動状態が認識と異なっておりましたので、それについてまとめたいと思います。 

www.guri2o1667.work

 

■間違って認識していた内容

docker run だろうが docker exec だろうが、シェルにログインした状態から
「exit コマンドを実行」 であれば dockerコンテナは停止、
「Ctrl+P ⇒ Ctrl +Qを押下」 であればdockerコンテナは起動したまま
と認識していました。

■正しい内容

f:id:guri2o1667:20201110105128p:plain

上記の通り、あくまでexitコマンドを実行したときにコンテナが停止するのは、
docker run コマンドを実行したときだけです。

■コマンド結果)①docker run → exit で抜ける

f:id:guri2o1667:20201110111623p:plain

■コマンド結果)②docker run → Ctrl+P , Ctrl+Q で抜ける

f:id:guri2o1667:20201110111646p:plain

■コマンド結果)③ docker exec → execコマンドで抜ける

f:id:guri2o1667:20201110105412p:plain

■コマンド結果)④ docker exec → Ctrl+P , Ctrl+Q コマンドで抜ける

f:id:guri2o1667:20201110105438p:plain

■私見

「Ctrl+P ⇒ Ctrl +Qを押下」でシェルから抜ける癖をつけておいた方が安全だと思っています。
コンテナを停止させたいのであれば、docker stopコマンドを利用すれば良いですし。
起動させておきたいものを停止してしまったときが・・・。


以上です。