表題の通り。コンテナを稼動させたままデタッチする方法を忘れがちなのでメモとして残しておく。
■ 環境
- Docker 1.8.2
■ detach
Dockerコンテナで作業をしていて、コンテナから抜けたいが、単に`control-D`で抜けようとすると”logout“になりコンテナは終了してしまう。これを回避する方法である。
[control-P] [control-Q]
上記でコンテナからデタッチすることができる。
以降、下記で起動したコンテナにて実験する。
$ docker run -ti --rm centos:6 /bin/bash
別のターミナルから確認する。
$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
18efb83c9f93 centos:6 "/bin/bash" 7 seconds ago Up 7 seconds backstabbing_cori
$
コンテナから`control-D`で抜けてみる。
$ docker run -ti --rm centos:6 /bin/bash
[root@18efb83c9f93 /]# exit
`docker ps`で確認すると下記のようにコンテナは停止される。既に削除されているのは、起動時の`–rm`オプションを付与しているからである。
$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
$
再度、コンテナを起動し、次はデタッチしてみる。
$ docker run -ti --rm centos:6 /bin/bash
[root@4977948e8cbc /]# [control-P] [control-Q]$
この状態でコンテナ一覧を確認する。
$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
4977948e8cbc centos:6 "/bin/bash" 3 minutes ago Up 3 minutes suspicious_khorana
$
デタッチが正常にでき、コンテナは停止&削除されていない。このコンテナに戻るにはアタッチすれば良い。
$ docker attach [ContainerID or ContainerName]
以上。