Learn or Die

生涯勉強。Macです。

Dockerの「exit」と「detach」の違い

コンテナから出る時、「exit」と「detach」の2つの方法があります。

exit

exitは完全にプロセスを切るので、STATUSはExitedになります。
再度コンテナを起動するにはdocker restart コンテナIDで起動できます。

root@abf3s2dssddda:/# exit
exit
(user) :$ docker ps -a
CONTAINER ID        IMAGE         COMMAND          STATUS                      
abf3s2dssddda        ubuntu       "bash"       Exited (0) 39 seconds ago

detach

detachは「ctrl + P + Q」でコンテナを出れます。
プロセスは切らないので、STATUSはUpのままです。
※この状態でdocker run~をしてしまうと新しいプロセスが作られます。
detachしたときのプロセスに入りたい場合はattachを使います。

root@abf3s2dssddda:/# 
(user) :$ docker ps 
CONTAINER ID        IMAGE         COMMAND          STATUS                      
abf3s2dssddda        ubuntu       "bash"        Up 15 minutes

どっちがいいの?

exitで出るのが一般的。
プロセスを残したまま出たいときはdetachを用いる。