はじめに
この実験では、Docker コンテナの状態管理について学びます。特にコンテナの一時停止 (pause) と再開 (unpause) に焦点を当てます。最初にシンプルなコンテナを作成・実行することから始めます。
コンテナ作成後、実行中のコンテナを一時停止し、その状態を確認する練習を行います。最後に、コンテナの再開方法を学び、実行が再開されたことを確認します。このハンズオン体験を通じて、docker container unpause
コマンドの実用的な理解を得ることができます。
💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください
この実験では、Docker コンテナの状態管理について学びます。特にコンテナの一時停止 (pause) と再開 (unpause) に焦点を当てます。最初にシンプルなコンテナを作成・実行することから始めます。
コンテナ作成後、実行中のコンテナを一時停止し、その状態を確認する練習を行います。最後に、コンテナの再開方法を学び、実行が再開されたことを確認します。このハンズオン体験を通じて、docker container unpause
コマンドの実用的な理解を得ることができます。
このステップでは、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 コンテナを作成・実行する方法を学びました。これにより、イメージを取得してコンテナを起動する基本的なプロセスを確認できました。次に、実行中のコンテナを一時停止してプロセスを中断する方法と、その状態を確認する方法を学びました。最後に、コンテナの一時停止を解除して実行を再開し、正常に動作していることを確認する練習を行いました。