コンテナの作成と停止
このステップでは、Docker コンテナを作成・停止する方法を学びます。Docker コンテナは軽量でポータブルな自己完結型のユニットであり、アプリケーションを実行するために必要なすべてを含んでいます。
まず、コンテナ作成に使用する Docker イメージを取得します。ここでは最小限の Ubuntu OS である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
イメージを取得したので、これからコンテナを作成・実行します。docker run
コマンドを使用します。-d
フラグはコンテナをデタッチモード(バックグラウンド)で実行し、--name
フラグはコンテナに名前を割り当てます。
docker run -d --name my-ubuntu-container ubuntu sleep infinity
このコマンドはubuntu
イメージからmy-ubuntu-container
という名前のコンテナを作成し、内部でsleep infinity
コマンドを実行します。sleep infinity
コマンドはコンテナを無期限に実行し続けます。
出力としてコンテナ ID(長い文字列)が表示されます。
<container_id>
コンテナが実行中か確認するには、docker ps
コマンドを使用します。
docker ps
このコマンドは実行中のコンテナを一覧表示します。my-ubuntu-container
が表示されるはずです。
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
<container_id> ubuntu "sleep infinity" X seconds ago Up X seconds my-ubuntu-container
次に、別のコンテナを作成しますが、今回は特定の名前を付けません。Docker が自動的に名前を生成します。
docker run -d ubuntu sleep infinity
再びコンテナ ID が出力されます。
<container_id>
docker ps
を再度実行して、両方の実行中コンテナを確認します。
docker ps
2 つのコンテナが表示されるはずです。
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
<container_id> ubuntu "sleep infinity" X seconds ago Up X seconds my-ubuntu-container
<container_id> ubuntu "sleep infinity" X seconds ago Up X seconds <random_name>
次に、my-ubuntu-container
という名前のコンテナを停止します。docker stop
コマンドに続けてコンテナ名または ID を指定します。
docker stop my-ubuntu-container
コンテナ名が出力され、停止したことが確認できます。
my-ubuntu-container
再度docker ps
を実行します。my-ubuntu-container
は表示されなくなります。docker ps
は実行中のコンテナのみ表示するためです。
docker ps
停止したコンテナも含めてすべてのコンテナを表示するには、docker ps -a
コマンドを使用します。
docker ps -a
両方のコンテナが表示され、my-ubuntu-container
のステータスがExited
になっているはずです。
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
<container_id> ubuntu "sleep infinity" X minutes ago Exited (0) X seconds ago my-ubuntu-container
<container_id> ubuntu "sleep infinity" X minutes ago Up X minutes <random_name>
最後に、2 番目のコンテナをその ID を使用して停止します。ID はdocker ps -a
の出力から確認できます。<container_id>
を実際の 2 番目のコンテナの ID に置き換えてください。
docker stop <container_id>
コンテナ ID が出力されます。
<container_id>
最後にdocker ps -a
を実行して、両方のコンテナが停止したことを確認します。
docker ps -a
両方のコンテナのステータスがExited
になっているはずです。
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
<container_id> ubuntu "sleep infinity" X minutes ago Exited (0) X seconds ago my-ubuntu-container
<container_id> ubuntu "sleep infinity" X minutes ago Exited (0) X seconds ago <random_name>