docker stop / start / restart の使い方
止める・動かす
書き方
docker stop コンテナ... docker start コンテナ... docker restart コンテナ docker kill コンテナ
コンテナを止めても消えません(中のファイルも残る)。start で同じコンテナをもう一度動かします。
よく使うオプション
| オプション | 意味 |
|---|---|
-t 秒 / --time 秒 | 止まるのを待つ秒数(既定は 10 秒。過ぎると強制的に止める) |
-a(start) | start のとき、出力をつないで表示する |
-s シグナル(kill) | kill で送るシグナルを選ぶ(既定は KILL) |
例
$ docker stop webwebweb に終わりの合図(SIGTERM)を送って止めます。コンテナは消えないので、中で変えたファイルも残ります。
$ docker start webweb止めたコンテナを、同じ設定のまま動かし直します。docker run と違い、新しいコンテナは作りません。
$ docker restart web
止めてから動かし直します。設定ファイルを書き換えたあと、読み込み直させるときに使います。
$ docker stop $(docker ps -q)
動いているコンテナを全部止めます。docker ps -q で ID だけを出し、それを stop に渡しています。
$ docker kill web
待たずにすぐ強制的に止めます(SIGKILL)。stop で止まらないときの最後の手段です。
よくある間違い・注意
- stop に 10 秒かかるのは、プログラムが SIGTERM で終わらず、待ち時間のあと強制終了されているからです。シェルを経由した CMD(sh -c …)でよく起きます。
- docker start は環境変数やポートを変えられません。変えたいときはコンテナを消して docker run で作り直します。
実際に打って練習する
Docker コースの Lv8「裏で動かす -d と --name」で覚えます(第1章 はじめてのコンテナ)。ブラウザの中のシミュレーターで、本物と同じように打って確かめられます。
Lv1〜7 はログインすると無料で試せます(それより先はゴールド以上のプランで遊べます)。