本記事はDocker ver24.0.7の環境で確認しています。
このコマンドは、起動中のコンテナの再起動を行います。
docker stopコマンドでコンテナを停止して、docker startコマンドでコンテナを起動するのと結果的に同じです。
docker restartコマンドのフォーマットとオプション
フォーマット
docker restart [オプション] コンテナ [コンテナ...]
主なオプション一覧
オプション | 概説 |
---|---|
-t | 強制終了処理が開始されるまでの時間(単位は秒) を指定する。デフォルトは10秒。 |
コマンド例
$ docker restart testvm
docker restartコマンドの使い方
以下で実例をまじえたコマンドの使い方を解説していきたいと思います。
起動中のコンテナを再起動する
コンテナの再起動を行うために、まずテスト用のコンテナを起動します。
$ docker run -dit --init --name testvm ubuntu
docker psコマンドにて起動確認を行います。
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
2892805e0dff ubuntu "bash" 22 minutes ago Up 20 minutes testvm
コンテナtestvmが起動していることが確認できました。
docker restartコマンドにてコンテナの再起動を行います。
$ docker restart testvm
docker psコマンドにて起動確認を行います。
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
2892805e0dff ubuntu "bash" 25 minutes ago Up 5 seconds testvm
再起動を行う前のSTATUSの値を見比べてください。再起動を行ったあとは「Up 5 seconds」と表示されています。これは「このコンテナは起動して5秒経過している」ことを表しています。
よってdocker restartコマンドで再起動(停止→起動)されたことがわかります。
念のため、docker stopコマンドとdocker startコマンドを連続して実行した後、docker psコマンドで確認してみたのですが、結果はdocker restartコマンドで再起動した場合と同じでした。
コンテナを複数指定した場合の挙動
docker restartコマンドで、再起動するコンテナを複数指定することができます。
この場合、指定した順番にコンテナの再起動が行われます。
テスト用にもう一つコンテナtestvm2を起動します。
$ docker run -dit --init --name testvm2 ubuntu
docker psコマンドで2つのコンテナが起動していることを確認します。
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
784954217bba ubuntu "bash" 4 minutes ago Up 3 seconds testvm2
330e75dfe34f ubuntu "bash" 17 minutes ago Up 3 minutes testvm
以下のコマンドで二つのコンテナの再起動を行ってみましょう。
$ docker restart testvm testvm2
二つのコンテナ名が出力され、プロンプトが戻りました。
testvm
testvm2
$
指定した複数のコンテナの最初から順番に再起動が行われていくことが確認できました。
念のため、以下のコンテナの順序を入れ替えて試してみました。
$ docker restart testvm2 testvm
testvm2
testvm
指定した順番に再起動が行われることが確認できました。
おわりに
以上でdocker restartコマンドの紹介を終わります。
ご指摘、ご要望などが御座いましたらコメントいただけるとうれしいです。
他のDockerコマンドの実例付紹介記事は、本サイト内の別記事「Dockerコマンドの一覧(オリジナルな実例付き)」をご参照ください。
ご訪問ありがとうございました!
コメント