38
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Dockerを正直よくわかってないあなたへ:図で理解する『プロセスとしてのコンテナ』入門

38
Last updated at Posted at 2025-12-08

Dockerを正直よくわかってないあなたへ:実体は“ただのプロセス”です

これまで 「Docker = 軽量VMみたいなもの」 と誤解していた時期が長く、
コンテナが落ちる・systemctlが動かない・volumeが挙動不審…
そんな“モヤモヤ”を抱え続けていました。

しかしある日、
「Dockerはただのプロセス」
と理解した瞬間に世界が一変しました。

この記事では、Dockerの正体=プロセス隔離(namespace)を初心者でも腹落ちする形で解説します。

あなたはこんな疑問ありませんか?

  • コンテナってOSが入ってるの?
  • systemctl が使えないのはなぜ?
  • コンテナはどこで動いてるの?
  • volume と bind mount の違いが曖昧
  • PID がホストとリンクして見えるのはなぜ?
  • コンテナ間通信は“仮想LAN”なの?

この記事でここが全部わかります。

#1 Dockerの正体:プロセスに“別の世界”を見せているだけ

Dockerは「軽量VM」ではありません。
1つのプロセスに対して、namespace/cgroup で“別の世界”を作っているだけです。

▼ 図:Docker と VM の違い(比較図)

ポイント:

  • VM → OSごと仮想化(重い)
  • Docker → プロセスを隔離(軽い)

#2 コンテナが“別世界”に見える仕組み:namespace の力

Dockerでls /するとホストとは内容が違います。
しかし実体は 同じカーネル上で動くただのプロセス

namespace が
「お前の世界の / はこれだよ」
と渡しているだけ。

▼ 図:namespace が作る“別世界”

#3 systemctl が動かない理由

よく初心者が困るやつ。

原因:
systemd は PID=1 の特権を前提に動くため、Docker環境では役割が違う。

コンテナは基本的に “1プロセス実行モデル” で設計されているので systemd が必要ない。

実務での正しい理解

  • コンテナ = アプリ1つ
  • サービス群をまとめたい → docker compose
  • 複数プロセス動かす → Supervisor などを使う(非推奨)

#4 volume と bind mount の違い(最も誤解される場所)

▼ 表で簡単に理解

種類 どこにある? バックアップ性 移植性 使いどころ
volume Docker管理領域 良い 良い データベースなど
bind mount ホストの指定パス 普通 ホスト依存 ローカル開発

▼ 図:bind mount と volume

#5 コンテナネットワークの正体(3層構造)

初心者が最も苦手なポイント。

Dockerネットワークはたったこれだけ:

  • コンテナ内部の eth0
  • Docker が作る仮想ブリッジ(docker0)
  • NATで外へ出す

#6 実務で使える Docker の“本当のTips”(ベテラン向け)

✔ namespaceを手動で作る(3行)

unshare --pid --fork --mount-proc bash

✔ ホストからコンテナ内部に入る最強コマンド

nsenter --target <PID> --mount --uts --ipc --net --pid

✔ cgroup v2 で CPU を制御する例

echo 200000 > /sys/fs/cgroup/mycg/cpu.max  # 20%制限

これらを理解すると、Dockerが“ただのプロセス”であることがより実感できます。

#7 まとめ:DockerはOSじゃない。プロセスだ。

この記事で押さえてほしいのはたった1つ:

Docker = 実体は1プロセス。namespace が「別の世界」を演出しているだけ。

これだけ理解していれば、
systemctl も PID の見え方も volume もすべて一本でつながります。

🙏 CTA

もし理解が1pxでも深まったら、いいね、スタックを押してもらえると励みになります!

38
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
38
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?