第2章 イメージとコンテナの基本操作|これだけはおさえる基本知識

【第2章】イメージとコンテナの基本操作

Dockerカリキュラム

第1章

第2章

第3章 …

第2章 イメージとコンテナの基本操作|これだけはおさえる基本知識

この章では 「イメージとコンテナの違い・基本コマンド・よく使うオプション」 を押さえます。

⏱ 読了目安:約15分 / 各セクションに詳細記事へのリンクあり

1

イメージとコンテナ、何が違うの?

Dockerを使い始めて最初に混乱するのが「イメージとコンテナの違い」です。どちらも似た言葉に聞こえますが、役割はまったく異なります。イメージは「設計図」、コンテナはその設計図から作った「実行中の箱」と覚えてください。

▶ イメージとコンテナの関係(1:N)

📦
イメージ
設計図・読み取り専用

コンテナ A(実行中)
コンテナ B(実行中)
コンテナ C(停止中)
1つのイメージから何個でもコンテナを作れる。イメージ自体は変化しない。

イメージはクッキーの「抜き型」に相当します。型を使ってクッキーを何枚焼いても、型そのものは変化しません。Dockerも同様で、1つのイメージから同時に複数のコンテナを起動できます。また、コンテナを削除しても元のイメージは残るため、いつでも同じ環境を再作成できます。

この関係を理解しておくと、docker rm(コンテナの削除)と docker rmi(イメージの削除)を使い分ける理由が自然とわかるようになります。


📖 2-1. イメージとコンテナの関係(詳細記事)→

2

まず覚えるべきコマンドはどれ?

Dockerのコマンドは数多くありますが、日常的に使うものは 10個前後 に絞られます。「イメージを操作するコマンド」と「コンテナを操作するコマンド」の2グループで整理すると覚えやすくなります。

📦 イメージ操作
docker pull
イメージを取得
docker images
イメージ一覧
docker rmi
イメージを削除

🟢 コンテナ操作
docker run
イメージからコンテナを作成・起動
docker ps
起動中コンテナ一覧(-a で全件)
docker stop
コンテナを停止
docker rm
コンテナを削除
docker exec
実行中コンテナでコマンド実行
docker logs
ログを表示

docker run はイメージからコンテナを作成して起動する、最もよく使うコマンドです。docker stop で停止したコンテナはまだ残っており、docker rm で完全に削除できます。「止める」と「消す」が別コマンドになっている点は初心者が最初に戸惑うポイントです。


📖 2-2. 主要コマンド一覧(詳細記事)→

3

コンテナにはどんな「状態」があるの?

コンテナは起動したら終わりではなく、明確な状態(ステータス)を持ちながら動いています。状態を把握しておくと「なぜコンテナが見当たらないのか」「なぜ起動できないのか」といったトラブルを自分で診断できるようになります。

▶ コンテナのライフサイクル
created
作成済み
running
実行中
exited
停止済み
deleted
削除済み

docker run → running
docker stop → exited
docker rm → deleted
docker ps -a exited を含む全件表示

docker stop で停止しても、コンテナは exited 状態で残り続けます。そのため docker ps には表示されませんが、docker ps -a では確認できます。停止済みコンテナは docker start で再起動することも可能です。完全に不要になったら docker rm で削除しましょう。


📖 2-3. コンテナのライフサイクル(詳細記事)→

4

コンテナの中に入れるの?(-it オプション)

-it オプションを付けると、コンテナの中でシェルを対話的に操作できます。まるで SSH でサーバーに入ったような感覚です。ファイルの中身を確認したいときや、動作を手動で試したいときに役立ちます。

▶ ubuntu コンテナに入ってシェルを操作する
$ docker run -it ubuntu bash
# コンテナ内のシェルが起動する
root@a3f2c1d:/# ls /
bin boot dev etc home lib media mnt opt proc root …
コンテナを出るには exit(コンテナも停止)または Ctrl+P+Q(コンテナは動かしたまま)

🔵 -i(–interactive):キーボード入力をコンテナに繋ぎっぱなしにする
🟢 -t(–tty):ターミナルらしい表示(プロンプトなど)を有効にする
→ 2つを組み合わせることで「対話的にシェルを操作できる」状態になる

すでに起動中のコンテナに入りたい場合は docker exec -it <コンテナID> bash を使います。docker run -it はコンテナを新規作成して入る、docker exec -it はすでに動いているコンテナに入る、という使い分けを覚えておきましょう。


📖 2-4. インタラクティブモード(-it)(詳細記事)→

5

バックグラウンドで動かすには?(-d オプション)

Webサーバーやデータベースのように「起動したらずっと動かし続ける」コンテナは、-d(detach)オプションでバックグラウンド実行にします。-d を付けないと、ターミナルがコンテナに占領されてしまい、Ctrl+C を押すとコンテナも止まってしまいます。

▶ nginx をバックグラウンドで起動する
$ docker run -d nginx
a3f2c1d8e9b4f1c2a3b4c5d6e7f8a9b0c1d2e3f4 ← コンテナIDが返ってきてすぐにプロンプトが戻る
# 状態確認
$ docker ps
CONTAINER ID IMAGE STATUS PORTS
a3f2c1d8e9b4 nginx Up 3 seconds 80/tcp

バックグラウンドで動いているコンテナのログを確認するには docker logs <コンテナID> を使います。停止するときは docker stop <コンテナID> です。コンテナIDは最初の数文字だけでも認識されるので、docker stop a3f のような短縮形も使えます。


📖 2-5. デタッチモード(-d)とバックグラウンド実行(詳細記事)→

6

外からアクセスしたい・データを残したい(-p / -v)

コンテナはデフォルトで外部から隔離されており、ブラウザからアクセスできません。またコンテナを削除するとその中のデータも消えます。この2つの問題を解決するのが -p(ポートマッピング)と -v(ボリュームマウント)です。

-p ポートマッピング
ブラウザ
localhost:8080
コンテナ
:80
-p 8080:80
ホスト:8080 → コンテナ:80 に転送

-v ボリュームマウント
ホストの
フォルダ
コンテナ内
のパス
-v ./data:/data
コンテナを削除してもデータが残る

▶ nginx をポート8080・データ永続化で起動する例

$ docker run -d -p 8080:80 -v ./html:/usr/share/nginx/html nginx

上の例では -p 8080:80 で「PC の 8080 番ポートをコンテナの 80 番ポートに繋ぐ」ため、ブラウザで http://localhost:8080 にアクセスするとnginxの画面が表示されます-v ./html:/usr/share/nginx/html でホスト側の html フォルダとコンテナ内の公開ディレクトリを同期しているため、コンテナを削除してもファイルは手元に残ります。※Windowsで動かしている方はホスト側のフォルダの書き方は/→\へ読み替えが必要ですのでご注意ください


📖 2-6. ポートマッピング(-p)とボリュームマウント(-v)(詳細記事)→

🖥️ シミュレータで練習しよう

この章で学んだコマンドを 全10ステップ で体験できます。下の順番で入力してみましょう。

STEP 1 docker run hello-world — 動作確認・イメージの自動 pull を体験
STEP 2 docker ps -a — 停止済みコンテナも含めて確認
STEP 3 docker images — ローカルのイメージ一覧を確認
STEP 4 docker run -d --name web -p 8080:80 nginx — バックグラウンド起動・ポート公開
STEP 5 docker ps — nginx が Up 状態か確認
STEP 6 docker logs web — nginx の起動ログを確認
STEP 7 docker exec web ls /etc/nginx — コンテナ内でコマンド実行
STEP 8 docker stop web — コンテナを停止
STEP 9 docker rm web — コンテナを削除
STEP 10 docker rmi hello-world nginx — イメージを削除してクリーンアップ

✅ 第2章のまとめ
イメージ=設計図・コンテナ=実行中の箱。1つのイメージから複数コンテナを作れる
② まず覚えるコマンドは run / ps / stop / rm / rmi / exec / logs の7つ
docker stop は「停止」、docker rm は「削除」。止めても消えない
-it でコンテナ内に入れる、-d でバックグラウンド実行
-p で外部公開、-v でデータを永続化

Dockerの基礎を動画で体系的に学びませんか?

実務で使う基礎だけを3時間に凝縮。環境構築から丁寧に解説しています。

Udemy Docker入門講座 クーポン割引で講座を見る →

コメント

タイトルとURLをコピーしました