Dockerコンテナを起動・確認・停止・削除する方法【docker container run / ls / stop / rm】

Dockerを使って開発を進めていると、

  • Dockerコンテナをどうやって起動するの?
  • Dockerコンテナの一覧を見たい!
  • Dockerコンテナを停止したり削除したりしたい!

と思うことがよくあります。

そこでこの記事では、

  • Dockerコンテナの起動(docker container run
  • Dockerコンテナの確認(docker container ls
  • Dockerコンテナの停止(docker container stop
  • Dockerコンテナの削除(docker container rm

といったDockerコンテナ操作の基本を実行例つきでわかりやすく解説します。

Dockerコンテナを起動する(docker container run)

docker container run

docker container runコマンドは、Dockerコンテナを作成して起動するコマンドです。Dockerコンテナを作成するにはDockerイメージが必要なため、ローカルにDockerイメージがなければ、自動的にDockerイメージを自動でダウンロードしてから起動してくれます。

Dockerは本来、以下の役割が分かれた3つのコマンドがあります。docker container runはこれらの一連の動作をまとめた便利なコマンドです。

  • Dockerイメージをダウンロードする → docker image pulldocker pull
  • Dockerコンテナを作成する → docker container createdocker create
  • 作成済みのDockerコンテナを起動する → docker container startdocker start

括弧の中に書いてあるコマンドは旧コマンドです。

docker container runコマンドの基本の書き方を以下に示します。

Dockerコンテナを起動するコマンド

docker container run <オプション> <イメージ名>:<タグ>

タグを省略すると自動的にlatestが指定されます。

docker run <オプション> <イメージ名>:<タグ>でも動作しますが、こちらは旧コマンドです。

例えば、最新版のhello-worldコンテナを起動する場合には、以下のコマンドを実行します。

docker container run hello-world

上記のコマンドでは、タグを省略しているのでhello-world:latestが起動されます。もしローカルにhello-worldイメージがない場合、hello-worldイメージを自動でダウンロードしてから起動してくれます。

また、同様に最新版のnginxコンテナを起動する場合には、以下のコマンドを実行します。

docker container run nginx

docker container runの主なオプション

docker container runコマンドの主なオプションを以下に示します。

オプション内容
-dバックグラウンドで実行する(detached)
-p ホストのポート番号:コンテナのポート番号ポート番号を指定する
--name コンテナ名任意のコンテナ名をつける
-v ホストのディスク:コンテナのディレクトリボリュームをマウントする

オプション付きでnginxコンテナを起動している例を以下に示します。

docker container run -d -p 8080:80 --name my-nginx nginx

上記のコマンドでは

  • バックグラウンドで実行
  • ホストの8080番をコンテナの80番に割り当て
  • my-nginxというコンテナ名を設定

という構成でnginxコンテナを起動しています。

動いているDockerコンテナを確認する(docker container ls)

現在動いているDockerコンテナを確認するには、docker container lsコマンドを使います。基本の書き方を以下に示します。

動いているDockerコンテナを確認するコマンド

docker container ls

docker psでも動作しますが、こちらは旧コマンドです。

docker container lsコマンドを実行すると、以下のような結果が表示されます。1行目が見出し、2行目以降はそれに対応する値です。該当するコンテナが存在しない場合は、2行目以降は表示されません。

CONTAINER ID   IMAGE     COMMAND                  CREATED          STATUS         PORTS     NAMES
4373c5321d72   nginx     "/docker-entrypoint.…"   12 seconds ago   Up 8 seconds   80/tcp    jolly_napier

CONTAINER IDはDockerコンテナごとに割り当てられた一意のIDです。ランダムな16進数(0–9・a–f)の文字列で構成されています。本来は64文字ありますが、表示されるのは先頭12文字です。12文字のみでも他と重複しなければIDとして使用できます。Dockerコンテナを停止・削除する操作等でDockerコンテナ名の代わりにCONTAINER IDを指定することもできます。

IMAGEはそのDockerコンテナの元となっているDockerイメージです。

COMMANDはDockerコンテナにデフォルトで起動するように構成されているプログラム名です。

CREATEDはそのコンテナがいつ作成されたかを示しています。

STATUSはDockerコンテナが動いている場合にはUp、動いていない場合にはExitedと表示されます(状況によってCreated / Restarting / Paused / Deadなども出ます)。

PORTSは公開されているポートが表示されます。ホストのポート番号->コンテナのポート番号の形式で表示されます。ホストとコンテナのポートが紐づけられていない場合、80/tcpようにコンテナのポート番号のみが表示されます。

NAMESはDockerが自動生成したコンテナ名、またはユーザーが指定したコンテナ名です。

補足

Dockerを使う上で使用頻度が高いコマンドのひとつです。以下のような場合に使います。

  • どのコンテナが起動しているのか確認したい
  • ポート番号やコンテナ名を調べたい
  • 停止や削除で使う対象コンテナを探したい

停止中を含むすべてのDockerコンテナを確認する(docker container ls -a)

通常のdocker container lsでは「起動中(Up)」のコンテナしか表示されません。停止中のDockerコンテナも含めて一覧を見たい場合は、docker container ls -aコマンドを使います。-aall(すべて)を意味します。

実行結果の例を以下に示します。

CONTAINER ID   IMAGE         COMMAND                  CREATED              STATUS                      PORTS     NAMES
4373c5321d72   nginx         "/docker-entrypoint.…"   53 seconds ago       Up 48 seconds               80/tcp    jolly_napier
6553cc6153c0   hello-world   "/hello"                 About a minute ago   Exited (0) 59 seconds ago             affectionate_varahamihira

Dockerコンテナを停止する(docker container stop)

動いているDockerコンテナを停止するには、docker container stopコマンドを使います。基本の書き方を以下に示します。

Dockerコンテナを停止するコマンド

docker container stop <CONTAINER ID または NAME>

docker stopでも動作しますが、こちらは旧コマンドです。

Dockerコンテナを削除する(docker container rm)

Dockerコンテナを削除するためには、docker container rmコマンドで実行します。rmはremove(削除)の略です。基本の書き方を以下に示します。

Dockerコンテナを削除するコマンド

docker container rm <CONTAINER ID または NAME>

docker rm <CONTAINER ID または NAME>でも動作しますが、こちらは旧コマンドです。

コンテナを削除するためには、コンテナを停止する必要があります。コンテナは動いているものをいきなり削除できません。そのため、docker container rmコマンドの実行前に、docker container stopコマンドでコンテナを事前に停止させとく必要があります。

停止していないコンテナを削除しようとすると、以下のようなエラーが発生します。これは「コンテナが動いているため削除できません という意味です。

Error response from daemon: cannot remove container ... : container is running

動いているコンテナも強制的に削除したい場合、-fオプションを付けます。-fは強制削除(force)の意味です。

docker container rm -f <CONTAINER ID または NAME>

ただし、強制削除はコンテナを即座に停止して削除するため、実行には注意が必要です。

本記事のまとめ

ここの記事では『Dockerコンテナを起動・確認・停止・削除する方法』について説明しました。

Dockerコンテナの起動・確認・停止・削除ができるようになると、開発作業がグッと楽になります。

この記事を参考に、ぜひ実際にコマンドを触りながら慣れてみてください。

お読みいただきありがとうございました。

スポンサーリンク