その3:ポート番号の設定のつづき。
存在するコンテナをいっぺんに停止する方法。
$ docker container stop $(docker container ls -aq)
a985f26967a8
fe8d52bced5e
コンテナが停止したことを確認する。
$ docker container ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
a985f26967a8 nginx "/docker-entrypoint.…" 45 minutes ago Exited (0) 4 seconds ago mynginx
fe8d52bced5e nginx "/docker-entrypoint.…" 11 hours ago Exited (0) 45 minutes ago funny_wu
コンテナは、止めただけだと、ストレージとして残ってしまいリソースを圧迫する。したがって、コンテナを削除する。
$ docker container rm funny_wu
funny_wu
コンテナが削除されたことを確認する。
$ docker container ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
a985f26967a8 nginx "/docker-entrypoint.…" 46 minutes ago Exited (0) About a minute ago mynginx
(参考)すべてのコンテナを削除する方法。
$ docker container rm $(docker container ls -aq)
コンテナのプライマリプロセス(デフォルトのコンテナコマンド)ではなくて、他のプログラムを指定することができる。
nginx イメージをつかって、 sleep コマンドを実行してみる。
$ docker container run -d nginx sleep 300
コンテナの中に入って確認してみる。
$ docker container exec -it <name> bash
(以下、コンテナの中)
/# apt-get update
/# apt-get install htop
/# htop
300秒後に、リターンしてした。
コンテナを立ち上げた状態で、Docker を再起動すると、デフォルト動作では、コンテナが停止してしまう。
この様な場合に備えて、リスタートポリシーを作ることができる。
no (デフォルト)
on-failure
unless-stopped
always
以下のコマンドで立ち上げておけば、Docker をリスタートしても、コンテナは、Docker の再起動時に自動的にリスタートする。
$ docker container run -dt --restart unless-stopped -p 8080:80 --name mynginx nginx
$ sudo systemctl restart docker
起動していた。
その5:コンテナのディスク使用率につづく。