Docker コンテナの unpause コマンドでコンテナを再開する方法

DockerDockerBeginner
今すぐ練習

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

この実験では、Docker コンテナの状態管理について学びます。特にコンテナの一時停止 (pause) と再開 (unpause) に焦点を当てます。最初にシンプルなコンテナを作成・実行することから始めます。

コンテナ作成後、実行中のコンテナを一時停止し、その状態を確認する練習を行います。最後に、コンテナの再開方法を学び、実行が再開されたことを確認します。このハンズオン体験を通じて、docker container unpauseコマンドの実用的な理解を得ることができます。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL docker(("Docker")) -.-> docker/ImageOperationsGroup(["Image Operations"]) docker(("Docker")) -.-> docker/ContainerOperationsGroup(["Container Operations"]) docker/ContainerOperationsGroup -.-> docker/run("Run a Container") docker/ContainerOperationsGroup -.-> docker/ps("List Running Containers") docker/ContainerOperationsGroup -.-> docker/start("Start Container") docker/ContainerOperationsGroup -.-> docker/stop("Stop Container") docker/ContainerOperationsGroup -.-> docker/rm("Remove Container") docker/ImageOperationsGroup -.-> docker/pull("Pull Image from Repository") subgraph Lab Skills docker/run -.-> lab-555126{{"Docker コンテナの unpause コマンドでコンテナを再開する方法"}} docker/ps -.-> lab-555126{{"Docker コンテナの unpause コマンドでコンテナを再開する方法"}} docker/start -.-> lab-555126{{"Docker コンテナの unpause コマンドでコンテナを再開する方法"}} docker/stop -.-> lab-555126{{"Docker コンテナの unpause コマンドでコンテナを再開する方法"}} docker/rm -.-> lab-555126{{"Docker コンテナの unpause コマンドでコンテナを再開する方法"}} docker/pull -.-> lab-555126{{"Docker コンテナの unpause コマンドでコンテナを再開する方法"}} end

コンテナの作成と実行

このステップでは、Docker コンテナを作成・実行する方法を学びます。コンテナとは、コードとその依存関係をパッケージ化したソフトウェアの標準単位であり、アプリケーションを異なるコンピューティング環境間で高速かつ確実に実行できるようにします。

まず、Docker Hub からシンプルなイメージをプルしましょう。ここでは Docker インストールをテストするための非常に小さなイメージであるhello-worldを使用します。

docker pull hello-world

イメージがプルされ、展開されることを示す出力が表示されるはずです。

Using default tag: latest
latest: Pulling from library/hello-world
...
Status: Downloaded newer image for hello-world:latest
docker.io/library/hello-world:latest

イメージを取得したので、このイメージを基にコンテナを実行できます。hello-worldイメージからコンテナを実行すると、Docker は単にターミナルにメッセージを表示して終了します。

docker run hello-world

以下のような出力が表示され、Docker のインストールが正しく動作していることが確認できます:

Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
    (If you already had the image locally, skipped the pull step.)
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash

このコマンドはhello-worldイメージからコンテナを作成・実行しました。コンテナの仕事はメッセージを表示して終了することだけだったため、現在は実行されていません。

実行中のコンテナを一時停止する

前のステップでは、すぐに終了するシンプルなコンテナを実行しました。一時停止 (pause) と再開 (unpause) を実践するためには、実行状態を維持するコンテナが必要です。ここではシンプルなubuntuコンテナを使用し、バックグラウンドで実行し続けます。

まず、ubuntuイメージをプルしましょう。

docker pull ubuntu

イメージがプルされ、展開されることを示す出力が表示されるはずです。

Using default tag: latest
latest: Pulling from library/ubuntu
...
Status: Downloaded newer image for ubuntu:latest
docker.io/library/ubuntu:latest

次に、ubuntuコンテナをデタッチモード (-d) で実行し、バックグラウンドで動作させます。参照しやすいように名前 (my-ubuntu) も付けます。tail -f /dev/nullコマンドを使用してコンテナを無期限に実行し続けます。

docker run -d --name my-ubuntu ubuntu tail -f /dev/null

このコマンドはコンテナ ID を出力します。

<container_id>

docker psコマンドでコンテナが実行中か確認できます。

docker ps

以下のような出力が表示され、my-ubuntuコンテナがUpの状態であることがわかります。

CONTAINER ID   IMAGE          COMMAND               CREATED         STATUS         PORTS     NAMES
<container_id>   ubuntu         "tail -f /dev/null"   X seconds ago   Up X seconds             my-ubuntu

実行中のコンテナが準備できたので、docker pauseコマンドに続けてコンテナ名または ID を指定して一時停止できます。

docker pause my-ubuntu

コマンドが成功すると、出力はありません。これでコンテナは一時停止状態になりました。

コンテナの一時停止状態を確認する

前のステップでmy-ubuntuコンテナを一時停止しました。ここでは、コンテナが実際に一時停止状態にあることを確認しましょう。

実行中のコンテナの状態を確認するために、再度docker psコマンドを使用できます。

docker ps

このコマンドは現在実行中のコンテナのみを表示します。my-ubuntuコンテナは一時停止しているため、docker psの出力には表示されません。

CONTAINER ID   IMAGE     COMMAND    CREATED    STATUS    PORTS     NAMES

停止済み、終了済み、一時停止中のコンテナを含むすべてのコンテナを表示するには、docker ps-aフラグを追加します。

docker ps -a

これでmy-ubuntuコンテナがリストに表示され、その状態が一時停止中であることがわかります。STATUS 列にPausedという表示を確認してください。

CONTAINER ID   IMAGE          COMMAND               CREATED         STATUS                   PORTS     NAMES
<container_id>   ubuntu         "tail -f /dev/null"   X minutes ago   Up X minutes (Paused)             my-ubuntu

(Paused)という状態表示は、コンテナが現在実行中ではないもののメモリ上に保持されており、再開可能な状態であることを確認しています。

コンテナの一時停止を解除する

前のステップでmy-ubuntuコンテナが一時停止状態にあることを確認しました。ここでは、その一時停止を解除して実行を再開しましょう。

コンテナの一時停止を解除するには、docker unpauseコマンドに続けてコンテナ名または ID を指定します。

docker unpause my-ubuntu

コマンドが成功すると、出力はありません。コンテナは一時停止した時点から実行が再開されます。

コンテナの再実行を確認する

前のステップでmy-ubuntuコンテナの一時停止を解除しました。ここでは、コンテナが再度実行中であることを確認しましょう。

現在実行中のコンテナを一覧表示するには、docker psコマンドを使用します。

docker ps

今度は、my-ubuntuコンテナが出力に表示され、その状態はUpとなっているはずです。

CONTAINER ID   IMAGE          COMMAND               CREATED         STATUS         PORTS     NAMES
<container_id>   ubuntu         "tail -f /dev/null"   X minutes ago   Up X seconds             my-ubuntu

Upという状態は、コンテナが実行中でプロセスがアクティブであることを示しています。

さらに確認するために、docker ps -aを使用して状態を確認することもできます。(Paused)の表示なしにUpと表示されるはずです。

docker ps -a
CONTAINER ID   IMAGE          COMMAND               CREATED         STATUS         PORTS     NAMES
<container_id>   ubuntu         "tail -f /dev/null"   X minutes ago   Up X seconds             my-ubuntu

これにより、コンテナが一時停止状態から正常に再開されたことが確認できます。

最後に、作成したコンテナをクリーンアップしましょう。まず停止してから削除する必要があります。

docker stop my-ubuntu

このコマンドはコンテナを停止します。コンテナ名または ID が表示されます。

my-ubuntu

次に、docker rmコマンドを使用してコンテナを削除します。

docker rm my-ubuntu

このコマンドはコンテナを削除します。コンテナ名または ID が表示されます。

my-ubuntu

まとめ

この実験では、hello-worldイメージをプルして実行することで Docker コンテナを作成・実行する方法を学びました。これにより、イメージを取得してコンテナを起動する基本的なプロセスを確認できました。次に、実行中のコンテナを一時停止してプロセスを中断する方法と、その状態を確認する方法を学びました。最後に、コンテナの一時停止を解除して実行を再開し、正常に動作していることを確認する練習を行いました。