「Dockerが便利なのは分かったけれど、概念がフワッとしていてよく分からない」 「環境構築の途中でエラーが出て、学習に挫折してしまった」
そんな経験はありませんか? Dockerは現代の開発現場で必須のスキルですが、「読むだけ」のインプット学習では頭に定着しにくいという大きな壁があります。
そこで、「徹底した図解テキスト」×「ブラウザで動くJSシミュレータ」を組み合わせた新しい学習プログラムを作成しました。

💡 3つの特徴
本サイトは、ただ知識を羅列したリファレンスではありません。「頭で理解し、手で覚える」ことを目的とした半演習型のカリキュラムを採用しています。
1. 徹底した「基本概念」の分かりやすい解説
コマンドを暗記する前に、まずは「コンテナとは何か?」「イメージとコンテナの違いは?」「ボリューム(データ永続化)の仕組みは?」といったコアとなる概念を、初心者向けに噛み砕いて解説しています。 基礎の土台をしっかり作ることで、応用的な設定もスムーズに理解できるようになります。
2. 環境構築不要!ブラウザで動く「Dockerシミュレータ」
本サイト最大の目玉が、JavaScriptで独自開発したDockerコマンドシミュレータです。
通常、Dockerを学ぶためには自身のPCにDocker Desktopなどをインストールする必要がありますが、初学者にとってはそれ自体がハードルになります。 本サイトでは、記事の中にあるシミュレータ画面にコマンド(docker run や docker ps など)を打ち込むだけで、仮想的にコンテナの起動や停止の挙動をブラウザ上で確認できます。
3. 「インプット」即「アウトプット」の半演習型スタイル
人間の脳は、学んだことをすぐに出力することで記憶を定着させます。
- STEP 1: 記事で概念とコマンドの意味を理解する(インプット)
- STEP 2: すぐ下のシミュレータで実際にコマンドを叩いて結果を見る(アウトプット)
このサイクルを繰り返すことで、ただの暗記ではなく「生きた知識」としてDockerのスキルを身につけることができます。
🎯 こんな方におすすめです
- これからDockerを学び始めたいインフラ・アプリ開発初心者
- 過去にDockerの学習で挫折してしまった方
- 「なんとなく」でコマンドをコピペして使っている方
- 通勤中の電車内など、PC環境がない場所でもスマホのブラウザでコマンドの挙動を確認したい方
🚀 さっそく始めてみましょう
「百聞は一見に如かず」ならぬ、「百読は一打に如かず」です。 シミュレータを使った新しいDocker学習体験を、ぜひ以下のリンクから試してみてください!
コンテナ技術をマスターして、開発の生産性を一気に引き上げましょう!
📚 Docker完全攻略 学習マップ
このマップは Docker完全攻略カリキュラム(全13章) を1サブ項目=1記事で網羅する学習ロードマップです。各章はまず■基礎編(入門者はまずここ)→ ■応用編(実務で必要になったら)の順で並んでいます。
公開済みの記事は✅でリンクが張られています。準備中のものは🔜でグレー表示。ブックマークして戻ってきてください。
第1章Dockerとは何か
📖 章まとめ:第1章 Dockerとは何か|これだけはおさえる基本知識
- 1.1 仮想マシン(VM)とDockerコンテナの違い|仕組みから使い分けまで徹底解説
- 扱う範囲: VM vs コンテナ, ハイパーバイザー, 軽量性, 起動速度, 使い分け
- 1.2 Dockerのアーキテクチャ完全解説|CLI・デーモン・containerd・Docker Hub の全体像
- 扱う範囲: Docker Engine, CLI/デーモン, containerd, REST API, Docker Hub
- 1.3 Dockerインストール完全ガイド|Windows・Mac・Linux 別 セットアップと動作確認
- 扱う範囲: Docker Desktop (Windows/Mac), Docker Engine (Linux), 初期設定
- 1.4 Docker 動作確認完全ガイド|hello-world から nginx・ubuntu まで基本コマンドを一通り体験
- 扱う範囲: hello-world, nginx, ubuntu, 基本コマンド体験
- 1.5 コンテナの正体は「隔離されたプロセス」|名前空間・cgroups・overlayfsの仕組みを図解
- 扱う範囲: Linux namespace, cgroups, overlayfs, プロセス隔離
第2章イメージとコンテナの基本操作
📖 章まとめ:第2章 イメージとコンテナの基本操作|これだけはおさえる基本知識
- 2.1 Dockerイメージとコンテナの違いと関係|1:Nの仕組みを図解で徹底理解
- 扱う範囲: イメージとコンテナの1:N関係, レイヤー, 書き込み可能レイヤー
- 2.2 Docker主要コマンド完全ガイド|pull・run・exec・logsの使い方を実例で解説
- 扱う範囲: docker pull/push, images/rmi, run/start/stop/rm, ps/logs/exec
- 2.3 Dockerコンテナのライフサイクル完全解説|状態遷移・終了コード・再起動ポリシー
- 扱う範囲: Created/Running/Exited, 終了コード, restart policy
- 2.4 docker run -it とは?インタラクティブモードを完全解説|コンテナに入る方法
- 扱う範囲: -i/-t オプション, TTY, stdin, コンテナ内シェル
- 2.5 docker run -d とは?デタッチモード・バックグラウンド実行を完全解説
- 扱う範囲: -d オプション, デタッチ, restart=unless-stopped, docker stats
- 2.6 Dockerのポートマッピング(-p)とボリュームマウント(-v)完全解説
- 扱う範囲: -p ポート公開, -v ボリューム, bind mount, named volume
- 2.7 Dockerハンズオン|Python・PostgreSQLコンテナを動かしてみる【環境構築なしで体験】
- 扱う範囲: python REPL, postgres, psql, -it/-d/–name の実戦, docker exec
- 2.8 Dockerハンズオン|nginxでWebサーバを立ててブラウザからアクセスする【ポート転送の応用】
- 扱う範囲: nginx, -p 8080:80, ブラウザ確認, 静的ファイルマウント, ログ確認
第3章Dockerfileによるイメージ構築
📖 章まとめ:第3章 Dockerfileによるイメージ構築|これだけはおさえる基本知識
- 3.1 Dockerfile 完全入門|FROM・RUN・COPY・CMD・ENTRYPOINT など全命令を実例で解説
- 扱う範囲: FROM, RUN, COPY, ADD, CMD, ENTRYPOINT, EXPOSE, ENV, WORKDIR, ARG, LABEL, USER
- 3.2 Dockerレイヤーキャッシュの仕組みとビルド最適化|ビルド時間を10倍速くする実践テクニック
- 扱う範囲: レイヤーキャッシュ, ビルドコンテキスト, 命令順序の最適化
- 3.3 .dockerignore完全ガイド|書き方・推奨テンプレ・ビルド高速化と情報漏洩の防止
- 扱う範囲: .dockerignore 記法, 除外対象, ビルド高速化, 情報漏洩防止
- 3.4 docker build 完全実践|Webアプリを一からDockerize するステップバイステップ
- 扱う範囲: Webアプリのコンテナ化, docker build 実践, タグ付け
- 3.5 Dockerマルチステージビルド完全ガイド|イメージサイズを1/10に削減する実践テクニック
- 扱う範囲: マルチステージ, ビルドステージ分離, イメージサイズ削減
- 3.6 Dockerイメージ軽量化の完全ガイド|full・slim・alpine・distroless・scratch の使い分け
- 扱う範囲: alpine, slim, distroless, scratch, イメージサイズ最適化
第4章データの永続化
- 4.1 Dockerコンテナのエフェメラル性とは|なぜデータ永続化が必要か
- 扱う範囲: エフェメラル性, 書き込み可能レイヤー, Copy-on-Write, データ消失リスク, 永続化3種類の早見表
- 4.2 Docker Named Volume完全ガイド|docker volume create/ls/inspect/rm の使い方
- 扱う範囲: docker volume 4コマンド, Named Volume, 匿名ボリューム, Postgres永続化ハンズオン, prune
- 4.3 Dockerバインドマウント完全ガイド|ホストパスをコンテナに直接マウント
- 扱う範囲: bind mount, -v / –mount, ライブ編集ハンズオン, 設定ファイル注入, UID権限, Win/Mac性能
- 4.4 Docker tmpfsマウント完全ガイド|メモリ上の一時領域をコンテナに提供
- 扱う範囲: tmpfs, –tmpfs, –mount type=tmpfs, size/mode/uid, 3方式総まとめ
- 4.5 Dockerボリュームのバックアップとリストア|tarで安全にデータを退避
- 扱う範囲: 一時コンテナ+tarパターン, Postgresハンズオン, 論理ダンプ併用, 本番Tips
第5章ネットワーク
- 5.1 Dockerのデフォルトブリッジとカスタムブリッジの違い|DNS名前解決まで徹底解説
- 扱う範囲: デフォルト vs カスタム, 自動DNS 127.0.0.11, –link非推奨, 実戦パターン
- 5.2 Dockerコンテナ間通信の仕組み|コンテナ名によるDNS名前解決を完全解説
- 扱う範囲: 内蔵DNS詳細, network-alias, 複数ネットワーク, frontend/backend分離, 起動順依存
- 5.3 docker networkコマンド完全ガイド|create/ls/inspect/connect/disconnect の使い方
- 扱う範囲: 7サブコマンド, subnet/gw/mtu, inspect読み方, ラベル付け
- 5.4 Dockerポートバインディング完全ガイド|-pと-Pの違い・セキュリティまで
- 扱う範囲: -p全書式, UDP/範囲, 127.0.0.1指定, UFW迂回, iptables
- 5.5 Dockerネットワークドライバ完全ガイド|bridge・host・none・overlay・macvlanの違い
- 扱う範囲: 5ドライバ俯瞰, overlay+Swarm前提, macvlan物理LAN, 比較早見表
第6章Docker Compose
- 6.1 Docker Composeとは?何が嬉しいのか・どんな場面で使うか完全解説
- 扱う範囲: Compose概観, V1vs V2, 最小動作例, docker runとの対比, 向く場面
- 6.2 compose.yml 完全ガイド|services/networks/volumes/configs/secretsの書き方
- 扱う範囲: トップ5キー, services基本, build vs image, networks/volumes明示, configs/secrets
- 6.3 docker compose 主要コマンド完全ガイド|up/down/ps/logs/exec/buildの使い方
- 扱う範囲: up/down危険オプ, exec vs run, build/pull, プロジェクト名-p
- 6.4 Docker Composeの依存関係制御|depends_onとhealthcheckの正しい使い方
- 扱う範囲: depends_on単独の落とし穴, condition3種, pg_isready/mysqladmin定型, Dockerfile HEALTHCHECKとの関係
- 6.5 Docker Composeの環境変数管理|.envファイル・env_file・environmentの違い
- 扱う範囲: 3仕組みの棲み分け, 優先順位, 機密情報secretsへ, 環境別切替パターン
- 6.6 Docker Compose実践|Webアプリ+DB+リバースプロキシの本番構成を作る
- 扱う範囲: FastAPI+Postgres+nginx 3層, frontend/backend分離, healthcheck連携, .env統合
第7章レジストリとイメージ管理
- 7.1 Docker Hub完全ガイド|パブリック/プライベートリポジトリと自動ビルド
- 扱う範囲: Hub概観, 3階層, login+PAT, push/pull, Private/Public, Rate Limit対処
- 7.2 Dockerイメージのタグ戦略|latest・semver・Git SHAの使い分けとベストプラクティス
- 扱う範囲: latestの罠, semver, Git SHA immutable, digest参照, 複数タグ併用
- 7.3 Docker プライベートレジストリ構築ガイド|registryコンテナで自前運用
- 扱う範囲: registry:2, TLS+Basic認証, ストレージ永続化+S3, ガベージコレクション
- 7.4 Docker Content Trust完全ガイド|イメージの署名と検証でサプライチェーンを守る
- 扱う範囲: DCT/Notary, 鍵管理, DCTの制約, Cosign/Sigstore新標準
- 7.5 Harbor・Amazon ECR・GitHub Container Registry の違い|用途別の選び方
- 扱う範囲: Harbor/ECR/GHCR 3大比較, クラウド別推奨, GAR/ACR/GitLab/Quay
第8章セキュリティ
- Dockerコンテナのセキュリティリスク完全ガイド|分離の限界と対策
- 扱う範囲: カーネル共有, 特権エスカレーション, 既知のCVE
- Docker root実行を避ける完全ガイド|USER命令とRootlessモード
- 扱う範囲: USER 命令, rootless Docker, 権限最小化
- Docker –read-only 完全ガイド|コンテナのファイルシステムを書き込み禁止に
- 扱う範囲: –read-only, tmpfs併用, 適用範囲
- Docker Capabilities完全ガイド|–cap-drop/–cap-addで権限を最小化
- 扱う範囲: Linux capabilities, –cap-drop ALL, 必要な権限の追加
- Docker Seccomp/AppArmor/SELinux連携ガイド|システムコール制限の実践
- 扱う範囲: seccomp プロファイル, AppArmor, SELinux
- Dockerイメージ脆弱性スキャン完全ガイド|Trivy・Docker Scoutの使い方
- 扱う範囲: Trivy, Docker Scout, CVE 対応ワークフロー
- Docker Secrets管理のベストプラクティス|環境変数に置くべきでない理由
- 扱う範囲: docker secret, 環境変数の危険, ボリューム経由のsecret
第9章パフォーマンス・チューニング
- Dockerリソース制限完全ガイド|–memory/–cpus/–pids-limitの設計指針
- 扱う範囲: –memory, –cpus, –pids-limit, cgroups
- Docker BuildKit完全ガイド|並列ビルドとキャッシュ戦略でCIを高速化
- 扱う範囲: BuildKit, –mount=type=cache, 並列ビルド
- Dockerロギングドライバ完全ガイド|json-file/syslog/fluentdの使い分け
- 扱う範囲: json-file, syslog, fluentd, ログローテーション
- Docker HEALTHCHECK完全ガイド|本番で効くヘルスチェック設計
- 扱う範囲: HEALTHCHECK 命令, interval/timeout/retries
- Dockerコンテナ監視ガイド|docker statsとcAdvisorで使用率を見える化
- 扱う範囲: docker stats, cAdvisor, Prometheus連携
第10章Docker Swarm(クラスタリング入門)
- Docker Swarmとは?Manager/Worker構成とKubernetesとの違い
- 扱う範囲: Swarm mode, Manager, Worker, Raftコンセンサス
- Docker Swarm初期化ガイド|docker swarm init/joinでクラスター構築
- 扱う範囲: docker swarm init, swarm join, トークン管理
- Docker Swarm Service/Stack管理ガイド|compose.ymlからのデプロイ
- 扱う範囲: docker service, docker stack deploy, Compose互換
- Docker Swarmのスケール・ローリングアップデート完全ガイド
- 扱う範囲: docker service scale, –update-parallelism
- Docker Swarmネットワーク完全ガイド|overlayとingressの仕組み
- 扱う範囲: overlay network, ingress, routing mesh
- Docker Swarm vs Kubernetes|用途と規模に応じた使い分け
- 扱う範囲: Swarm/K8s比較, 規模別選定, 運用コスト
第11章Kubernetesへの接続(Kubernetes入門)
- なぜKubernetesが必要か|DockerだけでなくK8sを学ぶ理由
- 扱う範囲: オーケストレーション, スケーラビリティ, 自己修復
- Kubernetes主要リソース完全ガイド|Pod/Deployment/Service/Ingress/ConfigMap/Secret/PV
- 扱う範囲: Pod, Deployment, Service, Ingress, ConfigMap, Secret, PersistentVolume
- minikube vs kind完全ガイド|ローカルKubernetesの選び方と使い方
- 扱う範囲: minikube, kind, ローカルK8s構築
- DockerイメージをKubernetesにデプロイする完全手順
- 扱う範囲: Deployment manifest, kubectl apply, Service公開
- Helm Chart入門|Kubernetesパッケージマネージャの基本
- 扱う範囲: Helm, Chart, Template, Values
第12章CI/CDパイプラインへの組み込み
- CI/CDにおけるDockerの役割|なぜDockerがパイプラインの標準になったか
- 扱う範囲: 再現性, 環境差の排除, ビルド高速化
- GitHub ActionsでDockerイメージをビルド&プッシュする完全ガイド
- 扱う範囲: docker/build-push-action, secrets, matrix
- GitLab CI・Jenkins×Docker連携パターン完全ガイド
- 扱う範囲: GitLab CI, Jenkins, DinD, runner
- Docker buildxマルチアーキテクチャビルド完全ガイド|amd64/arm64両対応
- 扱う範囲: buildx, QEMU, –platform linux/amd64,linux/arm64
- Docker本番デプロイパイプライン設計|ビルド→検証→本番の流れ
- 扱う範囲: ステージング, Blue/Green, Canary
第13章実践プロジェクト
- 【実践】FastAPI+PostgreSQL+Nginx の本番Docker構成を作る
- 扱う範囲: Compose, リバースプロキシ, DB永続化
- 【実践】Node.jsアプリのDocker化とホットリロード開発環境
- 扱う範囲: bind mount, nodemon, 本番/開発の切り替え
- 【実践】GPUコンテナで機械学習モデルをサービングする
- 扱う範囲: nvidia-container-toolkit, –gpus all, モデル配信
- 【実践】レガシーアプリをDockerに移行するリフト手順
- 扱う範囲: 依存調査, 段階的リフト, 動作確認手順
- 【実践】Docker障害対応シミュレーション|ログ調査とコンテナ再起動
- 扱う範囲: docker logs, restart policy, ポストモーテム
📖 推奨教材
本サイトで体系的に学びつつ、動画講座で復習すると定着が早まります。
当サイト管理人のUdemy Docker入門講座
実務で使う基礎だけを約3時間に凝縮。環境構築から丁寧に解説しているので、Dockerを全く触ったことがない方でも安心して受講できます。
🔄 更新情報
このマップは記事公開の都度自動更新されます。新着記事の通知を逃したくない方はブックマークしてください。
