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 webweb

web に終わりの合図(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 はログインすると無料で試せます(それより先はゴールド以上のプランで遊べます)。

Docker コマンド一覧(使い方と例)へ戻る