docker restartコマンドの使い方(実例で解説)

docker restartコマンド解説

 本記事はDocker ver24.0.7の環境で確認しています。

 このコマンドは、起動中のコンテナの再起動を行います。

 docker stopコマンドでコンテナを停止して、docker startコマンドでコンテナを起動するのと結果的に同じです。

docker restartコマンドのフォーマットとオプション

フォーマット

docker restart [オプション] コンテナ [コンテナ...]

主なオプション一覧

オプション概説
-t強制終了処理が開始されるまでの時間(単位は秒)
を指定する。デフォルトは10秒。

コマンド例

$ docker restart testvm

docker restartコマンドの使い方

 以下で実例をまじえたコマンドの使い方を解説していきたいと思います。

実例では、Ubuntuの公式イメージにより起動したコンテナ(testvm)を使用します。

コンテナは「docker run -dit --init --name testvm ubuntu」で起動します。

※「--rm」オプションを付けておりませんので、ご利用後はコンテナ削除をお忘れなく。

起動中のコンテナを再起動する

 コンテナの再起動を行うために、まずテスト用のコンテナを起動します。

$ 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コマンドの一覧(オリジナルな実例付き)」をご参照ください。

 ご訪問ありがとうございました!

コメント