ウェブエンジニア問題集
第2章

イメージとコンテナの基本操作 — pull・run・ps・stop・rm

3
この章の目次開く

Dockerを使う最初の一歩は、イメージを取得し、そこからコンテナを起動することです。

イメージは実行環境のテンプレート、コンテナはそのテンプレートから起動した実体です。node:22mysql:8.4 のようなイメージを取得し、必要なオプションを指定してコンテナとして動かします。

イメージは「起動前のパッケージ」、コンテナは「実際に動いているプロセス」です。

イメージを取得する

イメージは docker pull で取得できます。

docker pull nginx
bash

取得済みのイメージは docker images で確認します。

docker images
bash
項目意味
REPOSITORYイメージ名
TAGバージョンや用途を表すラベル
IMAGE IDイメージを識別するID
SIZEイメージサイズ

コンテナを起動する

イメージからコンテナを起動するには docker run を使います。

docker run --name web -p 8080:80 nginx
bash

このコマンドでは、nginx イメージから web という名前のコンテナを起動しています。-p 8080:80 は、ホスト側の 8080 番ポートをコンテナ側の 80 番ポートにつなぐ指定です。

オプション意味
--name webコンテナに名前を付ける
-p 8080:80ホストの8080番をコンテナの80番へ転送する
-dバックグラウンドで起動する
--rm停止時にコンテナを自動削除する

バックグラウンドで起動するなら、次のように -d を付けます。

docker run -d --name web -p 8080:80 nginx
bash

起動中のコンテナを確認する

起動中のコンテナは docker ps で確認します。

docker ps
bash

停止済みのコンテナも含めて確認したい場合は -a を付けます。

docker ps -a
bash

Dockerを学び始めたばかりのときは、「コンテナが動いていない」のか「動いているがポート指定が違う」のかを切り分けるために、まず docker ps を見る癖を付けるとよいです。

コンテナを止める・削除する

コンテナを止めるには docker stop を使います。

docker stop web
bash

停止したコンテナを削除するには docker rm を使います。

docker rm web
bash

イメージ自体を削除するには docker rmi を使います。

docker rmi nginx
bash

よくある混乱: localhost

コンテナ内で localhost と書くと、そのコンテナ自身を指します。ホストPCや別コンテナを指すわけではありません。

WebアプリとDBを別コンテナで動かす場合、アプリコンテナからDBへ localhost で接続しようとして失敗することがよくあります。Docker Composeでは、サービス名をホスト名として使うのが基本です。

ちゃんと使うためのポイント

  • docker pull はイメージ取得
  • docker run はイメージからコンテナを起動
  • docker ps は起動中のコンテナ確認
  • docker stop は停止、docker rm はコンテナ削除
  • localhost は「どこから見た localhost か」を必ず考える