はじめに
Docker に興味があっても、「なぜ Docker を使うのか」「コンテナと VM は何が違うのか」は、最初は理解しづらいところです。
入門記事はたくさんある一方で、WSL と Docker Desktop のどちらを入れるか、OS ごとに手順が違う、permission denied で最初の docker run まで届かない、といった 環境構築で止まる パターンもよくあります。仕事の合間に触ろうとしても、調べているうちに時間だけ過ぎる。私たちも同じでした。
そこで用語を全部理解してから進むのではなく、コマンドをコピペして動かしながら拾う Step 1〜6 を用意しました。この記事は、6 Step 全体の流れと読み方の整理です。
手順本文は各 Step の記事にあり、コピペして試せる形式にしています。
各 Step では、イメージとコンテナの関係や Compose の役割など 基本的な仕組み にも触れます。気になったところは、その Step や公式ドキュメントで深掘りできます。
環境の用意から、1 コンテナの起動、イメージの自作、複数コンテナの運用、データの残し方、ネットワークまで、Step 1 から順に読むとつながります。Windows 向けの環境設定は、後述の「前提環境」にまとめています。
このシリーズを読み終えると
Step 1〜6 を順にやると、次のあたりまで 触った・読んだ 状態になる想定です。
- WSL2 上の Ubuntu ターミナルから
dockerコマンドを打てる - nginx を 1 コンテナとして起動・停止・削除できる。
pull/run/psが何をしているか、自分なりに説明できる - Dockerfile でイメージをビルドし、
COPYが何をしているかわかる - Compose で YAML 1 本から複数コンテナを
up/downできる - Volume で、コンテナを消してもデータをホスト側に残せる
- ネットワークのモードの違いと、Compose でコンテナ名でつながる件を、ざっくり理解できる
この記事の使い方
- 環境から作るなら Step 1 から順に読む
- 環境があるなら 目的別の読み方 から必要な Step だけ選んでもよい
このシリーズの前提環境
本シリーズの基本方針は、Windows + WSL2 + Ubuntu 上に Docker Engine を入れ、Linux ターミナルから Docker CLI を実行する ことです。Docker Desktop は前提にしません。
| 項目 | 内容 |
|---|---|
| OS | Windows 11(または WSL2 対応の Windows 10) |
| Linux | WSL2 上の Ubuntu |
| Docker | Docker Engine(CLI) |
| エディタ | VS Code + WSL 拡張(Step 1 で設定。必須ではないが推奨) |
Docker Desktop について
- Step 1 では Desktop を使わず Engine を WSL2 に直接インストールする手順を扱います
- Step 2 では CLI でコンテナを起動した結果を Docker Desktop の画面でも確認する 場面があります(Desktop が入っていれば参照用として使える、という位置づけです)
動作確認環境の例
- Ubuntu 24.04 LTS
- Docker Engine 29.x 系
- Docker Compose v2(
docker composeサブコマンド)
学習ロードマップ
Step 1 → Step 6 の順に読むと、環境構築 → 単一コンテナ → イメージ自作 → 複数コンテナ → データ永続化 → ネットワーク とつながります。前の Step で触った操作が次で意味を持ちます。
Step 1: WSL2 上でUbuntu と Docker Engine の構築
WSL2 上に Ubuntu と Docker Engine を構築する
以降のハンズオンでコマンドを打つ土台。WSL2・Ubuntu・VS Code 接続・Engine インストールまで。
Step 2: Docker CLI で nginx の起動
Docker CLI で nginx を起動して動作を確認する
pull / run / ps / stop / rm で はじめての1コンテナ。CLI の結果が Desktop にどう見えるかも確認。
Step 3: Dockerfile と主要命令
既製イメージの利用から一歩進み、FROM / COPY / CMD で イメージを自作する。
Step 4: Docker Compose
Docker Composeで複数コンテナを一括起動する (公開予定)
docker run を繰り返す代わりに YAML 1 本で複数コンテナを up / down する。Web + 補助コンテナ のセット運用が題材。
Step 5: Docker Volume
Docker Volumeでホスト側のデータを永続化する (公開予定)
コンテナを消しても残したいデータをホスト側に置く --volume(bind mount) の使い方。
Step 6: Docker ネットワーク
bridge / host / none の違いと、Compose 時に コンテナ名で名前解決できる理由 を図解で整理。
目的別の読み方
まず動かしてみたい
Step 1 で WSL2 + Docker Engine の環境を整え、Step 2 で nginx コンテナを 1 つ動かすと、pull → run → ブラウザ確認 → stop / rm まで一通り触れます。Docker の基本操作の入口になります。
自分のイメージや複数コンテナを扱いたい
Step 3 で Dockerfile を使ったイメージのビルド、Step 4 で Compose による複数コンテナの管理、という流れが自然です。Step 3 の COPY はイメージにファイルを焼き込む方法、Step 5 の Volume は実行中にホストとデータを共有する方法、と役割が異なります。
データを消したくない・ログを残したい
Step 5 が該当します。コンテナの寿命とデータの寿命を分ける考え方と、docker run -v ホスト:コンテナ の書き方を WSL2 上で確認できます。
コンテナ同士がつながる仕組みを知りたい
Step 6 が該当します。Compose で複数サービスを up したときにコンテナ名で通信できる理由や、bridge ネットワークの基本が図解で整理されています。Step 4 のあとに Step 6 を読むと、YAML で定義したサービス同士の関係が腹落ちしやすいです。
まとめ
- WSL2 + Docker Engine を前提に、Step 1〜6 で Docker を触り始めるための入口をカバーします
- 環境から作るなら Step 1 → Step 6 の順、環境があるなら 目的別の読み方 から必要な Step だけ選べます
まずは WSL2 上に Ubuntu と Docker Engine を構築する(Step 1)から。
参考
本シリーズを作成するうえで、以下の資料を参考にさせていただきました。
- https://docs.docker.com/
- https://docs.docker.com/compose/
- https://docs.docker.com/engine/storage/
- Linux・Docker Compose・Dockerfile 完全入門
- WSL2 上に Ubuntu と Docker Engine を構築する
- Docker CLI で nginx を起動して動作を確認する
- Dockerfile で主要命令を使いイメージをビルドする
- Docker ネットワークを図解で理解する
株式会社ジールでは、「ITリテラシーがない」「初期費用がかけられない」「親切・丁寧な支援がほしい」「ノーコード・ローコードがよい」「運用・保守の手間をかけられない」などのお客様の声を受けて、オールインワン型データ活用プラットフォーム「ZEUSCloud」を月額利用料にてご提供しております。
ご興味がある方は是非下記のリンクをご覧ください: