表題のコマンドについて試してみる。
■ 環境
- Mac OSX El Capitan
- Docker 1.10.2
- Docker Machine 0.6.0
- Docker Compose 1.6.0
■ pause
`docker pause`を”docker-compose.yml“で設定しているコンテナに対して行うものである。そもそも`pause`は何をしているのか、という疑問には下記のヘルプ。
$ docker pause -h
Usage: docker pause [OPTIONS] CONTAINER [CONTAINER...]
Pause all processes within a container
--help Print usage
$
コンテナを一時的に停止(suspend)させるものである。”SIGSTOP“シグナルが与えられているようである。
$ docker-compose pause -h
Pause services.
Usage: pause [SERVICE...]
$
実際に行ってみる。対象のコンテナ群はいつも通りの”Elasticsearch + Kibana“である。
$ docker-compose pause
Pausing elasticsearch ... done
Pausing kibana ... done
$
$ docker-compose ps
Name Command State Ports
------------------------------------------------------------------------------------------
elasticsearch /docker-entrypoint.sh elas ... Paused 0.0.0.0:9200->9200/tcp, 9300/tcp
kibana /docker-entrypoint.sh kibana Paused 0.0.0.0:5601->5601/tcp
$
$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
7654ad8f188f kibana "/docker-entrypoint.s" 7 minutes ago Up 7 minutes (Paused) 0.0.0.0:5601->5601/tcp kibana
940da79434bd elasticsearch "/docker-entrypoint.s" 7 minutes ago Up 7 minutes (Paused) 0.0.0.0:9200->9200/tcp, 9300/tcp elasticsearch
$
■ unpause
`pause`で一時的に停止しているコンテナを再開させる。
$ docker-compose unpause
Unpausing kibana ... done
Unpausing elasticsearch ... done
$
$ docker-compose ps
Name Command State Ports
-----------------------------------------------------------------------------------------
elasticsearch /docker-entrypoint.sh elas ... Up 0.0.0.0:9200->9200/tcp, 9300/tcp
kibana /docker-entrypoint.sh kibana Up 0.0.0.0:5601->5601/tcp
$
$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
7654ad8f188f kibana "/docker-entrypoint.s" 8 minutes ago Up 8 minutes 0.0.0.0:5601->5601/tcp kibana
940da79434bd elasticsearch "/docker-entrypoint.s" 9 minutes ago Up 8 minutes 0.0.0.0:9200->9200/tcp, 9300/tcp elasticsearch
$
今までは一時的に不要になったものを`stop`して置いておいたりしたのだが、今後は`pause`をしておいてみることにする。
ちなみに`unpause`していない状態(“STATUS“が”Paused“)で`start`をしてもコンテナは開始されないし、`down`で停止と削除をしようとしたら下記のようにエラーとなった。
$ docker-compose down
Stopping kibana ... error
Stopping elasticsearch ... error
ERROR: for elasticsearch Cannot stop container 940da79434bdb050056405ab28565c1f1c52c04727a5631728934f1b00c10106: unpausecontainer: Container 940da79434bdb050056405ab28565c1f1c52c04727a5631728934f1b00c10106 is paused. Unpause the container before stopping
ERROR: for kibana Cannot stop container 7654ad8f188f717c4487fb9e6fe5924feb7886c5d650c67f4455deaf42c18623: unpausecontainer: Container 7654ad8f188f717c4487fb9e6fe5924feb7886c5d650c67f4455deaf42c18623 is paused. Unpause the container before stopping
$
以上。