「Dockerって聞くけど、何から始めればいいの?」という方は多いです。筆者もDockerを初めて触ったときは概念が掴めず苦労しました。しかし基本を理解してからは開発環境の構築時間が1/5になり、「もうDocker無しには戻れない」と実感しています。この記事では2026年最新の情報でインストールから実践まで、初心者がつまずきやすいポイントを押さえて完全解説します。
Dockerとは?仮想マシンとの違い
Dockerはアプリケーションとその実行環境をまとめて「コンテナ」というパッケージにする技術です。「軽くて速い仮想環境」と理解すればOKです。
| 比較項目 | Docker(コンテナ) | 仮想マシン(VM) |
|---|---|---|
| 起動時間 | 数秒 | 数分 |
| ディスク使用量 | 数十MB〜 | 数GB〜 |
| OS | ホストOSカーネル共有 | ゲストOSが必要 |
| パフォーマンス | ほぼネイティブ | オーバーヘッドあり |
| ポータビリティ | どこでも同じ環境 | イメージが大きく移動困難 |
| 主な用途 | 開発環境・CI/CD・マイクロサービス | OSレベルの分離が必要な場面 |
Dockerの主要コンセプト
Dockerを理解するには3つの概念を押さえましょう。
- イメージ(Image):コンテナの「設計図」。OS+ミドルウェア+アプリが1つのパッケージになったもの。Docker Hubで公開イメージを入手可能
- コンテナ(Container):イメージを「実行中」にしたもの。複数のコンテナを同時起動でき、互いに独立
- Dockerfile:イメージの作り方を記述した「レシピ」ファイル。テキストファイルなのでGitで管理できる
Dockerのインストール手順【OS別】
macOS
Docker Desktop for Macを公式サイトからダウンロード。dmgファイルを開いてApplicationsにドラッグするだけです。Apple Silicon(M1〜M4)にネイティブ対応しています。
Windows
Docker Desktop for Windowsをインストールします。WSL2(Windows Subsystem for Linux 2)が前提で、Windows 10以降なら「wsl –install」コマンドでセットアップ可能です。
Linux(Ubuntu/Debian)
公式リポジトリからapt経由でインストールします。Docker DesktopではなくDocker Engineのみで動作し、軽量です。
確認方法:ターミナルで「docker –version」と入力し、バージョンが表示されればインストール成功です。
まず覚える基本コマンド10選
| コマンド | 機能 | 使用例 |
|---|---|---|
| docker pull | イメージをダウンロード | docker pull nginx |
| docker run | コンテナを作成・起動 | docker run -d -p 80:80 nginx |
| docker ps | 実行中のコンテナ一覧 | docker ps |
| docker ps -a | 全コンテナ一覧(停止含む) | docker ps -a |
| docker stop | コンテナを停止 | docker stop コンテナID |
| docker rm | コンテナを削除 | docker rm コンテナID |
| docker images | イメージ一覧 | docker images |
| docker rmi | イメージを削除 | docker rmi イメージID |
| docker logs | コンテナのログ表示 | docker logs コンテナID |
| docker exec | 実行中コンテナ内でコマンド実行 | docker exec -it コンテナID bash |
覚え方のコツ:最初は「pull → run → ps → stop → rm」の流れだけ覚えれば十分です。イメージをダウンロードして、起動して、確認して、止めて、片付ける。この流れが全ての基本です。
実践:Dockerで開発環境を構築しよう
ステップ1:Nginxで静的サイトを表示
まずは最もシンプルな例から始めましょう。「docker run -d -p 8080:80 nginx」を実行するだけで、ブラウザで localhost:8080 にアクセスするとNginxの初期ページが表示されます。たった1コマンドでWebサーバーが立ち上がる、これがDockerの威力です。
ステップ2:Dockerfileを書いてみよう
次にオリジナルのイメージを作ります。プロジェクトフォルダにDockerfileというファイルを作成し、ベースイメージの指定(FROM)、ファイルのコピー(COPY)、ポートの公開(EXPOSE)、起動コマンド(CMD)を記述します。
Dockerfileの基本構造:
- FROM:ベースとなるイメージを指定(例:node:20-alpine)
- WORKDIR:作業ディレクトリを設定
- COPY:ローカルファイルをコンテナ内にコピー
- RUN:ビルド時に実行するコマンド(例:npm install)
- EXPOSE:コンテナが使用するポートを宣言
- CMD:コンテナ起動時に実行するコマンド
ステップ3:Docker Composeで複数コンテナを管理
実際の開発では「Webアプリ+データベース+キャッシュ」のように複数コンテナを連携させます。Docker Composeはそれを1つのYAMLファイルで定義・管理するツールです。
Docker Composeの基本:docker-compose.ymlにサービス(コンテナ)の定義を書き、「docker compose up -d」で全コンテナを一括起動、「docker compose down」で一括停止できます。
Docker学習のロードマップ
| 段階 | 学習内容 | 目安期間 | ゴール |
|---|---|---|---|
| Week 1 | 基本コマンド・コンテナ操作 | 1週間 | コンテナの起動・停止ができる |
| Week 2 | Dockerfile作成・イメージビルド | 1週間 | 自分のアプリをコンテナ化できる |
| Week 3 | Docker Compose・複数コンテナ連携 | 1週間 | Web+DB環境を構築できる |
| Week 4 | ボリューム・ネットワーク・本番運用 | 1週間 | データ永続化と安全な運用ができる |
| Month 2〜 | CI/CD連携・Kubernetes入門 | 1ヶ月〜 | 本番デプロイの自動化 |
Docker運用のベストプラクティス
- 軽量ベースイメージを使う:node:20よりnode:20-alpineが200MB以上小さい。ビルド時間とストレージを節約
- .dockerignoreを書く:node_modules、.git、ログファイルなどをCOPYから除外。ビルド高速化とセキュリティ向上
- レイヤーキャッシュを活用:変更頻度の低いもの(依存関係インストール)を先に、変更頻度の高いもの(ソースコード)を後にCOPYする
- 1コンテナ1プロセス:Webサーバーとデータベースは別コンテナに分離。スケーリングと管理が容易に
- 環境変数で設定を管理:DB接続情報やAPIキーはDockerfile内にハードコードせず、環境変数(.envファイル)で管理
- ヘルスチェックを設定:コンテナの稼働状態を監視し、異常時に自動再起動させる
Docker学習におすすめのリソース
| リソース | 種類 | 料金 | 特徴 |
|---|---|---|---|
| Docker公式ドキュメント | 公式ドキュメント | 無料 | 最新情報が最も正確。英語だがDeepLで十分読める |
| Play with Docker | オンライン環境 | 無料 | ブラウザ上でDockerを試せる。インストール不要 |
| Udemy Docker講座 | 動画講座 | 1,500円〜 | 日本語のハンズオン講座が充実。セール時がお得 |
| Docker Deep Dive(書籍) | 書籍 | 3,000円前後 | 体系的に学べる定番書。中級者にもおすすめ |
よくある質問(FAQ)
DockerとKubernetesの違いは?
Dockerは「コンテナを作って動かす」ツール、Kubernetesは「大量のコンテナを管理・運用する」ツールです。個人開発や小規模チームならDocker(+Docker Compose)で十分です。コンテナ数が数十〜数百になる大規模運用でKubernetesが必要になります。まずはDockerを完全に理解してからKubernetesに進みましょう。
Docker Desktopは有料化されたのでは?
2022年から大企業(従業員250人以上または年収1000万ドル以上)は有料(月5ドル〜)になりました。個人利用、教育目的、小規模企業は引き続き無料です。Linuxの場合はDocker Engineのみで動作するため、そもそもDocker Desktopは不要です。
Dockerを使うとPCが重くなりませんか?
コンテナ自体は非常に軽量ですが、Docker Desktop(特にmacOS/Windows)はバックグラウンドで一定のメモリを使います。設定でメモリ上限を調整できるので、メモリ8GBのPCなら4GB、16GBなら6〜8GBを割り当てるのがおすすめです。
Windowsでも問題なく使えますか?
WSL2の登場以降、Windows環境でもDockerは快適に動作します。WSL2 + Docker Desktopの組み合わせでLinuxとほぼ同等のパフォーマンスが出ます。ただしWSL2のセットアップが必要なので、初回だけ少し手間がかかります。
開発環境以外にDockerの使い道はありますか?
たくさんあります。CI/CDパイプライン(GitHub Actions等)、本番環境のデプロイ、機械学習の実験環境、データベースのテスト環境など、「環境を素早く用意して壊せる」というDockerの特性はあらゆる場面で活用できます。
まとめ:Dockerは現代の開発者必須スキル
Dockerは2026年現在、エンジニアの必須スキルです。求人票でも「Docker経験あり」が当たり前のように記載されています。基本コマンド10個を覚え、Dockerfileを書けるようになれば、開発効率は劇的に向上します。
今日のアクション:(1) Docker Desktopをインストールする → (2) 「docker run -d -p 8080:80 nginx」でコンテナを起動してみる → (3) ブラウザでlocalhost:8080にアクセスして動作を確認する。この3ステップで、Dockerの世界への第一歩を踏み出せます。


コメント