コンテナの作成と停止
このステップでは、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
コンテナは実行中のコンテナリストに表示されないはずです。