Home / ネットワーク・IT / パソコン スマホ 周辺機器 / 【2026年最新版】Docker入門(インストール・コンテナ操作の基本)【完全ガイド】

【2026年最新版】Docker入門(インストール・コンテナ操作の基本)【完全ガイド】

※本ページにはプロモーション(広告)が含まれています

「Dockerって聞いたことはあるけど、何ができるの?」「インストールしてみたいけど、難しそう…」そんな疑問をお持ちではありませんか?

Dockerは、アプリケーションの開発・テスト・デプロイを劇的に効率化できるコンテナ技術です。2026年現在、Web開発やシステム運用の現場ではほぼ必須のツールとなっており、個人の開発環境構築にも広く使われています。

この記事では、Dockerを初めて触る方でも迷わないように、インストールから基本的なコンテナ操作、Docker Composeによる複数コンテナ管理まで、ステップバイステップで丁寧に解説します。実際のコマンド例をそのまま入力すれば動くように書いていますので、ぜひ手を動かしながら読み進めてください。

この記事でわかること

  • Dockerとは何か、コンテナと仮想マシンの違い
  • Docker Desktop(Windows/Mac)のインストール手順
  • docker run、docker ps、docker stopなど基本コマンドの使い方
  • Dockerfileを書いて独自のイメージを作成する方法
  • Docker Composeで複数コンテナをまとめて管理する方法
  • 実践的なWebアプリ環境構築の具体例
コンテナとVMの違い

Dockerとは?初心者にもわかる基本概念

Dockerの概要

Dockerとは、アプリケーションとその実行環境をまるごと「コンテナ」というパッケージに詰め込んで、どこでも同じように動かせるようにする技術です。

たとえば、自分のパソコンで動いていたプログラムを別のパソコンやサーバーに持っていくと、「あれ、なぜか動かない…」ということがよく起こります。これは、OSのバージョンやインストールされているライブラリの違いが原因です。

Dockerを使えば、アプリケーションに必要なファイル・ライブラリ・設定をすべてコンテナに含められるため、「自分の環境では動くのに…」という問題がなくなります

コンテナと仮想マシン(VM)の違い

「環境をまるごとパッケージにする」と聞くと、仮想マシン(VM)を思い浮かべる方もいるかもしれません。しかし、コンテナと仮想マシンには大きな違いがあります。

比較項目 コンテナ(Docker) 仮想マシン(VM)
起動速度 数秒で起動 数分かかる
サイズ 数十MB〜数百MB 数GB〜数十GB
OS ホストOSのカーネルを共有 ゲストOS丸ごと含む
リソース消費 軽い(CPU・メモリ節約) 重い(専用リソースを確保)
隔離レベル プロセスレベル ハードウェアレベル
代表的なツール Docker、Podman VirtualBox、VMware、Hyper-V

簡単にまとめると、仮想マシンは「パソコンの中にもう1台パソコンを作る」イメージで、コンテナは「パソコンの中に軽い作業部屋を作る」イメージです。コンテナはOSを丸ごと含まない分、圧倒的に軽くて速いのが最大の特長です。

Dockerの主要な用語

Dockerを使う上で知っておきたい基本用語を整理しておきましょう。

用語 意味 たとえ話
イメージ(Image) コンテナの設計図・テンプレート 料理のレシピ
コンテナ(Container) イメージから作られた実行中の環境 レシピから作った料理
Dockerfile イメージの作り方を記述したファイル レシピを書いたメモ
Docker Hub イメージの公開・共有サービス レシピ共有サイト
ボリューム(Volume) コンテナ外にデータを永続化する仕組み 保存用の外付けハードディスク
Docker Compose 複数コンテナをまとめて管理するツール フルコース料理の献立表

Docker Desktopのインストール手順

Dockerを使うには、Docker Desktopというアプリケーションをインストールするのが最も簡単です。Windows、Mac、Linuxに対応しています。

Windowsへのインストール

事前準備:WSL 2の有効化

Windows版Docker DesktopはWSL 2(Windows Subsystem for Linux 2)をバックエンドとして使用します。まずWSL 2を有効にしましょう。

ステップ1:PowerShellを管理者として実行

スタートメニューで「PowerShell」と検索し、「管理者として実行」を選択します。

ステップ2:WSLを有効化するコマンドを実行

wsl --install

このコマンドで、WSL機能の有効化とUbuntuのインストールが自動的に行われます。完了後、パソコンの再起動を求められる場合があります。

ステップ3:再起動後、WSLのバージョンを確認

wsl --version

WSLバージョンが「2」であることを確認してください。

Docker Desktopのインストール

ステップ1:公式サイトからダウンロード

Docker公式サイトにアクセスし、「Download for Windows」ボタンをクリックしてインストーラーをダウンロードします。

ステップ2:インストーラーを実行

ダウンロードした「Docker Desktop Installer.exe」をダブルクリックして実行します。途中で「Use WSL 2 instead of Hyper-V」にチェックが入っていることを確認して進めてください。

ステップ3:インストール完了後、Docker Desktopを起動

インストールが完了したら、Docker Desktopを起動します。タスクバーにクジラのアイコンが表示され、「Docker Desktop is running」と表示されればOKです。

Docker基本コマンド一覧

Macへのインストール

MacへのDocker Desktopのインストールは非常に簡単です。

ステップ1:公式サイトからダウンロード

Docker公式サイトにアクセスし、お使いのMacに合ったバージョンを選択します。

  • Apple Silicon(M1/M2/M3/M4):「Mac with Apple chip」を選択
  • Intel Mac:「Mac with Intel chip」を選択

ステップ2:dmgファイルを開いてインストール

ダウンロードした「Docker.dmg」をダブルクリックし、Dockerアイコンを「Applications」フォルダにドラッグ&ドロップします。

ステップ3:Docker Desktopを起動

アプリケーションフォルダからDocker Desktopを起動します。初回起動時にシステムの許可を求められるので、パスワードを入力して許可してください。メニューバーにクジラのアイコンが表示されれば起動完了です。

インストールの確認

Windows・Mac共通で、ターミナル(Windowsの場合はPowerShellまたはコマンドプロンプト)を開き、以下のコマンドを実行してバージョンが表示されれば、インストールは成功です。

docker --version
# 出力例: Docker version 27.x.x, build xxxxxxx

docker compose version
# 出力例: Docker Compose version v2.x.x

さらに、動作テストとして以下のコマンドを実行してみましょう。

docker run hello-world

「Hello from Docker!」というメッセージが表示されれば、Dockerは正常に動作しています。

Dockerの基本コマンドを覚えよう

Dockerを操作するための基本コマンドを、実際に使いながら学んでいきましょう。ここでは最もよく使う10個のコマンドを紹介します。

イメージの取得:docker pull

Docker Hubから既存のイメージをダウンロードするコマンドです。

# Nginxの公式イメージを取得
docker pull nginx

# 特定バージョンを指定して取得
docker pull nginx:1.27

# 軽量版のAlpineベースを取得
docker pull nginx:alpine

タグ(コロンの後ろ)を指定しない場合は、自動的に「latest(最新版)」がダウンロードされます。

コンテナの起動:docker run

docker run はDockerで最も使用頻度の高いコマンドです。イメージからコンテナを作成して起動します。

# 基本的な起動
docker run nginx

# バックグラウンドで起動(-d: デタッチモード)
docker run -d nginx

# ポート転送付きで起動(ホスト8080 → コンテナ80)
docker run -d -p 8080:80 nginx

# 名前を付けて起動
docker run -d -p 8080:80 --name my-nginx nginx

上記の最後のコマンドを実行した後、ブラウザで http://localhost:8080 にアクセスすると、Nginxのウェルカムページが表示されます。

docker runの主要オプション

オプション 意味 使用例
-d バックグラウンド実行 docker run -d nginx
-p ホスト:コンテナ ポート転送 docker run -p 8080:80 nginx
--name コンテナ名を指定 docker run --name web nginx
-v ホスト:コンテナ ボリュームマウント docker run -v ./html:/usr/share/nginx/html nginx
-e 環境変数を設定 docker run -e MYSQL_ROOT_PASSWORD=pass mysql
--rm 停止後に自動削除 docker run --rm nginx
-it 対話モード(ターミナル接続) docker run -it ubuntu bash

コンテナの一覧表示:docker ps

# 実行中のコンテナを表示
docker ps

# 停止中のコンテナも含めてすべて表示
docker ps -a

出力例:

CONTAINER ID   IMAGE   COMMAND                  STATUS          PORTS                  NAMES
a1b2c3d4e5f6   nginx   "/docker-entrypoint.…"   Up 5 minutes    0.0.0.0:8080->80/tcp   my-nginx

コンテナの停止・再起動・削除

# コンテナを停止(名前またはIDで指定)
docker stop my-nginx

# 停止したコンテナを再起動
docker start my-nginx

# コンテナを削除(停止してから削除)
docker stop my-nginx
docker rm my-nginx

# 強制削除(実行中でも削除)
docker rm -f my-nginx

コンテナの中に入る:docker exec

実行中のコンテナの中でコマンドを実行したい場合に使います。

# コンテナの中でbashを起動(対話モード)
docker exec -it my-nginx bash

# コンテナの中で直接コマンドを実行
docker exec my-nginx cat /etc/nginx/nginx.conf

コンテナ内のbashから抜けるには exit と入力してEnterを押します。

コンテナのログを確認:docker logs

# ログを表示
docker logs my-nginx

# リアルタイムでログを追跡(Ctrl+Cで終了)
docker logs -f my-nginx

# 直近20行のみ表示
docker logs --tail 20 my-nginx

イメージの一覧と削除

# ダウンロード済みイメージの一覧
docker images

# 不要なイメージを削除
docker rmi nginx:latest

# 使われていないイメージを一括削除
docker image prune -a

基本コマンド一覧まとめ

コマンド 用途
docker pull イメージ名 イメージをダウンロード
docker run オプション イメージ名 コンテナを作成して起動
docker ps 実行中のコンテナ一覧
docker stop コンテナ名 コンテナを停止
docker start コンテナ名 停止したコンテナを再起動
docker rm コンテナ名 コンテナを削除
docker exec -it コンテナ名 bash コンテナ内に入る
docker logs コンテナ名 ログを確認
docker images イメージ一覧
docker rmi イメージ名 イメージを削除

Dockerfileの書き方入門

Docker Hubの公式イメージをそのまま使うだけでなく、自分専用のカスタムイメージを作成することもできます。そのために使うのが「Dockerfile」です。

Dockerfileとは

Dockerfileとは、Dockerイメージを自動的にビルド(構築)するための設計書です。テキストファイルに「ベースイメージは何を使うか」「どんなファイルをコピーするか」「どんなコマンドを実行するか」を記述します。

Docker Composeの使い方

基本的なDockerfileの構成

シンプルなNode.jsアプリケーション用のDockerfileを例に、各命令の意味を解説します。

# ベースイメージを指定
FROM node:20-alpine

# 作業ディレクトリを設定
WORKDIR /app

# パッケージファイルをコピー
COPY package*.json ./

# 依存パッケージをインストール
RUN npm install --production

# アプリケーションのソースコードをコピー
COPY . .

# コンテナがリッスンするポートを記載
EXPOSE 3000

# コンテナ起動時に実行するコマンド
CMD ["node", "server.js"]

主要な命令の解説

命令 役割 使い方のポイント
FROM ベースイメージの指定 alpineタグを使うとイメージが軽量になる
WORKDIR 作業ディレクトリの設定 以降のコマンドはこのディレクトリ内で実行される
COPY ホストのファイルをコンテナにコピー 不要ファイルは.dockerignoreで除外
RUN ビルド時にコマンドを実行 パッケージのインストールなどに使用
EXPOSE 使用ポートの宣言 ドキュメント的な役割(実際の公開は-pオプション)
CMD コンテナ起動時の実行コマンド Dockerfileの最後に1つだけ記述
ENV 環境変数を設定 ENV NODE_ENV=production

Dockerfileからイメージをビルドする

Dockerfileを作成したら、以下のコマンドでイメージをビルドします。

# イメージをビルド(-t でイメージ名:タグを指定)
docker build -t my-node-app:1.0 .

# ビルドしたイメージを確認
docker images

# ビルドしたイメージからコンテナを起動
docker run -d -p 3000:3000 --name my-app my-node-app:1.0

コマンド末尾の .(ドット)は「現在のディレクトリにあるDockerfileを使う」という意味です。

.dockerignoreファイル

Dockerイメージに含めたくないファイルがある場合は、.dockerignore ファイルを作成してリストアップします。Gitの .gitignore と同じ考え方です。

node_modules
npm-debug.log
.git
.gitignore
Dockerfile
docker-compose.yml
.env
README.md

特に node_modules.git はサイズが大きくなりがちなので、必ず除外しましょう。

Docker Composeで複数コンテナを管理する

実際のアプリケーション開発では、Webサーバー、データベース、キャッシュなど複数のサービスを組み合わせて使うことがほとんどです。Docker Composeを使えば、これらを1つの設定ファイルで一括管理できます。

Docker Composeとは

Docker Composeは、複数のコンテナの構成をYAMLファイル(compose.yml)に定義し、一括で起動・停止・管理できるツールです。Docker Desktopをインストールすると、Docker Composeも一緒に使えるようになります。

compose.ymlの書き方

WordPressとMySQLを組み合わせた環境を例に、compose.ymlの書き方を見てみましょう。

# compose.yml
services:
  # WordPressサービス
  wordpress:
    image: wordpress:latest
    ports:
      - "8080:80"
    environment:
      WORDPRESS_DB_HOST: db
      WORDPRESS_DB_USER: wpuser
      WORDPRESS_DB_PASSWORD: wppassword
      WORDPRESS_DB_NAME: wordpress
    volumes:
      - wp_data:/var/www/html
    depends_on:
      - db
    restart: unless-stopped

  # MySQLデータベースサービス
  db:
    image: mysql:8.0
    environment:
      MYSQL_DATABASE: wordpress
      MYSQL_USER: wpuser
      MYSQL_PASSWORD: wppassword
      MYSQL_ROOT_PASSWORD: rootpassword
    volumes:
      - db_data:/var/lib/mysql
    restart: unless-stopped

# データ永続化用ボリューム
volumes:
  wp_data:
  db_data:

compose.ymlの主要な設定項目

設定項目 説明
services 各コンテナ(サービス)を定義するセクション
image 使用するDockerイメージ
ports ポート転送の設定(ホスト:コンテナ)
environment 環境変数の設定
volumes データの永続化(ボリュームマウント)
depends_on サービスの起動順序を指定
restart コンテナが停止したときの再起動ポリシー
build Dockerfileからビルドする場合のパス指定

Docker Composeの基本コマンド

# すべてのサービスをバックグラウンドで起動
docker compose up -d

# サービスの状態を確認
docker compose ps

# ログを確認
docker compose logs

# 特定サービスのログだけ確認
docker compose logs wordpress

# すべてのサービスを停止
docker compose down

# データ(ボリューム)も含めて完全削除
docker compose down -v

上記のWordPress環境を起動すると、ブラウザで http://localhost:8080 にアクセスするだけでWordPressのセットアップ画面が表示されます。データベースのインストールや設定は一切不要です。

実践!Webアプリケーション開発環境を構築しよう

ここまで学んだ内容を活用して、より実践的な開発環境を構築してみましょう。Node.js(Express)+ Redis + Nginxの構成を例に、Docker Composeで環境を構築します。

プロジェクト構成

my-webapp/
├── compose.yml          # Docker Compose設定ファイル
├── app/
│   ├── Dockerfile       # Node.jsアプリ用Dockerfile
│   ├── package.json     # Node.js依存パッケージ定義
│   └── server.js        # アプリケーション本体
└── nginx/
    └── default.conf     # Nginx設定ファイル

compose.ymlの作成

# compose.yml
services:
  # Nginxリバースプロキシ
  nginx:
    image: nginx:alpine
    ports:
      - "80:80"
    volumes:
      - ./nginx/default.conf:/etc/nginx/conf.d/default.conf
    depends_on:
      - app
    restart: unless-stopped

  # Node.jsアプリケーション
  app:
    build: ./app
    environment:
      - REDIS_HOST=redis
      - REDIS_PORT=6379
    depends_on:
      - redis
    restart: unless-stopped

  # Redisキャッシュ
  redis:
    image: redis:7-alpine
    volumes:
      - redis_data:/data
    restart: unless-stopped

volumes:
  redis_data:

起動してみよう

# プロジェクトディレクトリに移動
cd my-webapp

# イメージのビルドとコンテナの起動を同時に実行
docker compose up -d --build

# 全サービスが正常に動いているか確認
docker compose ps

# ブラウザで http://localhost にアクセスして動作確認

たったこれだけのコマンドで、Nginx + Node.js + Redisの3つのサービスが連携した開発環境が完成します。個別にインストール・設定する必要がないのがDocker Composeの大きなメリットです。

Dockerを使う上でのベストプラクティス

Dockerを効率的かつ安全に使うためのポイントをまとめます。

イメージサイズを小さくする

  • 軽量ベースイメージを使うnode:20-alpine のようにalpineタグを選ぶ(通常の1/5〜1/10のサイズ)
  • マルチステージビルドを使う:ビルド用のステージと実行用のステージを分けることで、最終イメージにビルドツールが含まれなくなる
  • .dockerignoreを活用する:不要なファイルをCOPYしないようにする

セキュリティに配慮する

  • rootユーザーで動かさない:Dockerfile内で USER 命令を使って非rootユーザーに切り替える
  • 機密情報をイメージに含めない:パスワードやAPIキーは環境変数で渡す(-e オプション、.env ファイル)
  • 公式イメージを使う:Docker Hubで「Official Image」マークが付いたイメージを優先する

開発効率を上げるコツ

  • ボリュームマウントを活用する:ソースコードをボリュームでマウントすれば、コードを変更するたびにビルドし直す必要がない
  • 不要なコンテナ・イメージを定期的に掃除するdocker system prune で使われていないリソースを一括削除
  • Docker Desktop のダッシュボードを活用する:GUIでコンテナの状態確認、ログ閲覧、リソース使用量の監視ができる

よくある質問(FAQ)

Q1. Dockerは無料で使えますか?

Docker Desktop は、個人利用、教育目的、小規模企業(従業員250人未満かつ年間収益1000万ドル未満)であれば無料で使えます。大企業での商用利用には有料サブスクリプション(Pro/Team/Business)が必要です。Docker Engine自体はオープンソースで完全無料です。

Q2. DockerはWindowsのHomeエディションでも使えますか?

はい、使えます。以前はPro/Enterprise/Educationエディションが必要でしたが、WSL 2バックエンドの導入により、Windows 10/11 Homeエディションでも問題なくDocker Desktopを使用できます。

Q3. DockerとKubernetes(クバネティス)は何が違うのですか?

Dockerは「コンテナを作って動かす」ためのツールで、Kubernetesは「大量のコンテナを管理・運用する」ためのツール(オーケストレーションツール)です。開発環境であればDockerだけで十分ですが、本番環境で多数のコンテナを自動でスケーリング・監視したい場合にKubernetesが活躍します。

Q4. コンテナを停止するとデータは消えますか?

docker stop でコンテナを停止しただけではデータは消えません。ただし、docker rm でコンテナを削除するとコンテナ内のデータは消失します。重要なデータはボリューム(Volume)を使って永続化しましょう。compose.ymlの volumes セクションで定義できます。

Q5. Docker Desktopが重くてパソコンが遅くなるのですが、対策はありますか?

Docker Desktopの設定(Settings → Resources)で、割り当てるCPUコア数やメモリ量を制限できます。初期設定ではリソースを多く使う設定になっている場合があるので、メモリを4GB程度、CPUを2コア程度に制限すると改善することが多いです。

Q6. docker-compose.yml と compose.yml はどちらを使うべきですか?

Docker Compose V2(2023年以降の標準)では、compose.yml が推奨ファイル名です。旧バージョン(V1)では docker-compose.yml が使われていましたが、V2では docker compose(ハイフンなし)コマンドとともに compose.yml を使うのが標準です。どちらのファイル名でも動作しますが、新規プロジェクトでは compose.yml を使いましょう。

Q7. Dockerfileの FROM で指定するイメージはどう選べばいいですか?

基本的にはDocker Hubの公式イメージ(Official Imageマーク付き)を使いましょう。サイズを小さくしたい場合は alpine タグ、安定性を重視する場合は slim タグがおすすめです。特定のバージョンを指定する(例: node:20-alpine)ことで、予期せぬバージョンアップを防げます。

Q8. WindowsでDocker使用中に「WSL 2 installation is incomplete」とエラーが出ます

WSL 2のLinuxカーネルが最新でない可能性があります。PowerShellを管理者権限で開き、wsl --update を実行してください。それでも解決しない場合は、wsl --shutdown でWSLを再起動してからDocker Desktopを再起動してみてください。

まとめ

この記事では、Dockerの基本的な概念からインストール、コンテナ操作、Dockerfile、Docker Composeまで幅広く解説しました。最後に、重要なポイントを振り返りましょう。

この記事のまとめ

  • Dockerはアプリケーションをコンテナとしてパッケージ化し、どの環境でも同じように動かせる技術
  • コンテナは仮想マシンよりはるかに軽量・高速で、起動も数秒で完了する
  • Docker Desktopをインストールするだけで、Windows・Macですぐに使い始められる
  • 基本コマンドは docker rundocker psdocker stopdocker rm の4つを覚えればOK
  • Dockerfileで独自のイメージを作成し、Docker Composeで複数サービスをまとめて管理できる
  • ベストプラクティス(軽量イメージ、セキュリティ、定期的な掃除)を意識して効率よく使おう

Dockerは最初はとっつきにくく感じるかもしれませんが、基本的なコマンドを覚えてしまえば、開発環境の構築が格段に楽になります。まずは docker run hello-world から始めて、少しずつ慣れていきましょう。

この記事が、Dockerを始める第一歩として参考になれば幸いです。わからないことがあれば、Docker公式ドキュメント(https://docs.docker.com/)も併せてご活用ください。

Check Also

【2026年最新版】PCモニターの正しい高さ・角度と姿勢改善【完全ガイド】

「パソコン作業をしていると、肩 …