#author("2020-09-22T00:31:58+09:00","default:ryuichi","ryuichi")
#author("2020-09-22T00:32:58+09:00","default:ryuichi","ryuichi")
* コンテナをexitさせない [#y494112b]
** 普通にdocker runするとすぐにexitする [#ta58d7a1]
$ docker run ubuntu
$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
60ecab0a614a ubuntu "/bin/bash" 10 seconds ago Exited (0) 9 seconds ago dazzling_hoppe
** デタッチモード(-d)でdocker runして無限ループを実行する [#qf4a14d3]
$ docker run -d ubuntu /bin/sh -c "while true; do sleep 100; done"
abc1236e495aa8bd8a5033cc9408cc0097eb34819a3b5df723835b116be54715
$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
abc1236e495a ubuntu "/bin/sh -c 'while t…" 4 seconds ago Up 3 seconds thirsty_greider
** デタッチモード(-d)とフォアグラウンドモード(-t)を使ってdocker runする [#t217fdc5]
$ docker run -d -t ubuntu
abc12345bc9d86d2fd197b66436efc5d0b8c6b7457345e68d9d3f4e916db05f6
$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
def45636bc9d ubuntu "/bin/bash" 10 seconds ago Up 10 seconds amazing_tesla
abc12345bc9d ubuntu "/bin/bash" 10 seconds ago Up 10 seconds amazing_tesla
*** フォアグラウンドモード オプション [#z192190e]
-a=[] : Attach to `STDIN`, `STDOUT` and/or `STDERR`
-t : Allocate a pseudo-tty
--sig-proxy=true: Proxy all received signals to the process (non-TTY mode only)
-i : Keep STDIN open even if not attached
** フォアグラウンドモード(-t)だけを使ってdocker runすると戻ってこれなくなる [#l4fb15dc]
$ docker run -t ubuntu
root@1f1f23ebec6a:/# exit
^C^C
root@1f1f23ebec6a:/# ^C^C
- -tだけ使うexitしようと思ってもホストのOSに戻ってこれなくなる
$ docker run -it ubuntu
root@c0430e1e8e53:/# exit
exit
$
- その場合、-iオプションを一緒に指定する
** 参考 [#c26954c1]
- https://stackoverflow.com/questions/30209776/docker-container-will-automatically-stop-after-docker-run-d
- デタッチモード https://docs.docker.com/engine/reference/run/#detached--d
- フォアグラウンドモード https://docs.docker.com/engine/reference/run/#foreground