Welcome to Tech Athletes | テック・アスリート   Click to listen highlighted text! Welcome to Tech Athletes | テック・アスリート

Docker完全入門ガイド【2026年版】|インストールから本番環境構築まで初心者向けに徹底解説

近年のWeb開発において、Dockerはもはや「知っていると便利」から「知らないと仕事にならない」必須スキルになりました。コンテナ技術の理解はバックエンド・インフラはもちろん、フロントエンドエンジニアにとっても重要です。

本記事では、Dockerを全く知らない初心者から「なんとなく使っているが仕組みが理解できていない」中級者まで、Dockerの基礎から本番環境での活用法までを体系的に解説します。

Dockerとは?コンテナ技術の基本

Dockerとは、アプリケーションとその実行環境を「コンテナ」という独立した単位にパッケージ化するプラットフォームです。

従来の開発では「自分のPCでは動くのに本番環境で動かない」という問題が頻繁に発生していました。Dockerを使うと、開発環境・テスト環境・本番環境を完全に同一の状態に保つことができます。

仮想マシン(VM)とDockerの違い

比較項目仮想マシン(VM)Docker(コンテナ)
起動時間数分かかる数秒(高速)
リソース消費重い(OSごと仮想化)軽い(ホストOSを共有)
ポータビリティ低い高い(どこでも動く)
構築の複雑さ比較的複雑シンプル(Dockerfileで管理)

Docker インストール手順

macOS へのインストール

Docker Desktopを公式サイト(docker.com)からダウンロードしてインストールするだけです。

# インストール確認
docker --version
docker compose version

Ubuntu/Debian へのインストール

# リポジトリのセットアップ
sudo apt-get update
sudo apt-get install ca-certificates curl gnupg

# Docker公式GPGキーの追加
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

# インストール
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

Dockerの基本コマンド

イメージ操作

# イメージの取得
docker pull nginx:latest

# イメージ一覧表示
docker images

# イメージの削除
docker rmi nginx:latest

コンテナ操作

# コンテナを起動(フォアグラウンド)
docker run nginx

# バックグラウンドで起動 + ポートマッピング
docker run -d -p 8080:80 --name my-nginx nginx

# 実行中コンテナの確認
docker ps

# すべてのコンテナを確認(停止中も含む)
docker ps -a

# コンテナの停止・削除
docker stop my-nginx
docker rm my-nginx

Dockerfileの書き方

DockerfileはDockerイメージを構築するための設計書です。以下はNode.jsアプリケーションのDockerfileの例です。

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

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

# 依存関係のインストール(キャッシュ活用)
COPY package*.json ./
RUN npm ci --only=production

# アプリケーションのコピー
COPY . .

# ポートの公開
EXPOSE 3000

# 起動コマンド
CMD ["node", "index.js"]

Docker Compose:複数コンテナの管理

実際のWebアプリ開発では、Webサーバー・アプリサーバー・DBなど複数のコンテナを連携させます。Docker Composeを使うと、これらをdocker-compose.yml一つで管理できます。

version: '3.9'
services:
  app:
    build: .
    ports:
      - "3000:3000"
    environment:
      - DATABASE_URL=postgres://user:password@db:5432/mydb
    depends_on:
      - db

  db:
    image: postgres:16
    environment:
      POSTGRES_USER: user
      POSTGRES_PASSWORD: password
      POSTGRES_DB: mydb
    volumes:
      - postgres_data:/var/lib/postgresql/data

volumes:
  postgres_data:
# 起動
docker compose up -d

# ログ確認
docker compose logs -f

# 停止
docker compose down

本番環境でのDockerベストプラクティス

  • マルチステージビルドでイメージサイズを最小化
  • rootユーザーで実行しない(セキュリティ対策)
  • .dockerignoreで不要なファイルをビルドから除外
  • ヘルスチェックを設定してコンテナの死活監視
  • イメージは公式イメージまたはAlpine/Distrolessベースを使用

まとめ:Dockerをマスターして開発効率を上げよう

Dockerは学習コストが比較的低い一方で、習得することでの恩恵は計り知れません。環境の再現性・開発速度・チーム協力の効率化など、あらゆる面で開発体験を向上させてくれます。

本記事で基礎を理解したら、次はKubernetesを使った本格的なコンテナオーケストレーションにも挑戦してみてください。

投稿者 kasata

IT企業でエンジニアとして勤務後、テクノロジー情報メディア「Tech Athletes(テック・アスリート)」を運営。プログラミング、クラウドインフラ(AWS/GCP/Azure)、AI活用、Webサービス開発を専門とする。エンジニア・ビジネスパーソン向けに、実際に使ってみた経験をもとに信頼できる技術情報を発信中。資格:AWS認定ソリューションアーキテクト、Python 3 エンジニア認定試験合格。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

Click to listen highlighted text!