コンテナの作成と停止
このステップでは、Docker コンテナを作成・停止する方法を学びます。コンテナはイメージの実行可能なインスタンスです。Docker API や CLI を使用してコンテナの作成、起動、停止、移動、削除が可能です。
まず、Docker Hub から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 は新しいコンテナを作成し、イメージで指定されたコマンドを実行します。hello-worldの場合、コマンドは単にメッセージを表示して終了します。
docker run hello-world
以下のような出力が表示されます:
Hello from Docker!
This message shows that your installation appears to be working correctly.
...
この出力はコンテナが正常に実行されメッセージを表示したことを確認します。コンテナ内のコマンドが完了したため、コンテナは停止しています。
停止済みも含むシステム上のコンテナを確認するには、docker ps -aコマンドを使用します。
docker ps -a
コンテナのリストが表示されます。hello-worldコンテナがリストに含まれ、ステータスはExitedになっているはずです。
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
... hello-world "/hello" About a minute ago Exited (0) 58 seconds ago ...
次に、別のコンテナを作成しますが、今回はubuntuイメージを使用し、コンテナを短時間実行し続けるコマンドを実行します。sleepコマンドを使用してコンテナを 10 秒間生存させます。
まず、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イメージからコンテナを実行し、sleep 10コマンドを実行します。デタッチモード (-d) で実行するため、コンテナはバックグラウンドで動作し、ターミナルをブロックしません。
docker run -d ubuntu sleep 10
このコマンドはコンテナ ID を出力します。
[container_id]
docker psを使用して実行中のコンテナを確認します。
docker ps
ubuntuコンテナがリストされ、ステータスはUpになっているはずです。
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
[container_id] ubuntu "sleep 10" About a minute ago Up 5 seconds ...
約 10 秒後、sleep 10コマンドが終了し、コンテナは停止します。再度docker ps -aを使用して、停止したコンテナを含む全てのコンテナを確認します。
docker ps -a
ubuntuコンテナのステータスはExitedになっているはずです。
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
[container_id] ubuntu "sleep 10" About a minute ago Exited (0) 5 seconds ago ...
...
最後に、docker stopコマンドを使用して手動でubuntuコンテナを停止します。実行中のコンテナは ID または名前で停止できます。コンテナを実行した際に出力された ID を使用します。[container_id]は実際の ubuntu コンテナの ID に置き換えてください。
docker stop [container_id]
このコマンドは停止されたコンテナ ID を出力します。
[container_id]
再度docker psを使用して、コンテナが実行されていないことを確認します。
docker ps
ubuntuコンテナは実行中のコンテナリストに表示されないはずです。