🧠

初心者向け Docker & Docker Compose ガイド

に公開

アプリ開発・テスト・デプロイを効率化するコンテナ入門


目次

  1. はじめに
  2. Docker Desktopのインストール
  3. Dockerとは?
  4. Docker Composeとは?
  5. Docker Composeの基本
  6. まとめ

はじめに

Dockerは コンテナ 技術を用いて、アプリケーションとその依存関係を一つのパッケージにまとめ、どこでも・誰でも・同じように 動かせるようにするプラットフォームです。本ガイドでは Docker の最低限押さえておきたい基礎をさらっと確認したあと、現場で最も出番の多い Docker Compose を中心に解説します。

想定読者: プログラミング経験はあるものの、コンテナ技術は初めて or 触り始めたばかりの方。


Docker Desktopのインストール

Windows / macOS

  1. Docker Desktop 公式サイト からインストーラをダウンロード。
  2. インストーラを実行し、案内に従ってインストール。
  3. 完了するとタスクトレイ(macOS はメニューバー)にクジラアイコンが表示されます。

ポイント: Docker Desktop には Docker CLIDocker Compose v2 が同梱されています。追加のセットアップは不要です。

Dockerとは?

Docker はアプリケーションを イメージ (image) という静的テンプレートにまとめ、それを実行単位である コンテナ (container) として起動します。仮想マシン (VM) と異なりホスト OS のカーネルを共有するため、軽量・高速に動きます。

コンテナ 仮想マシン
OS カーネル ホストと共有 ゲストごとに個別
起動速度 数秒以下 数十秒〜分
サイズ MB〜百数十 MB 数 GB

Dockerの基本用語と軽い使い方

用語 一言で 代表コマンド
イメージ 実行環境の設計図 docker pull nginx
コンテナ 実行中のイメージ docker run -d -p 80:80 nginx
Dockerfile カスタムイメージを定義するファイル docker build -t myapp .

Docker Compose について

単一コンテナなら docker run で十分ですが、Web + DB + キャッシュ のように複数のコンテナを協調させるケースでは管理が煩雑になります。Docker Compose は

  • 複数サービスの設定を YAML 1 枚で記述
  • 依存関係・ネットワーク・ボリュームを自動構成
  • up / down だけで開発環境を丸ごと立ち上げ・停止
  • .env による環境分岐やスケールアウトも簡単

といったメリットがあり、ローカル開発から CI/CD まで 幅広く採用されています。

Docker Composeの基本

docker-compose.yaml
version: "3.9"
services:
  web:
    image: nginx:latest
    ports:
      - "80:80"

  app:
    build: .
    environment:
      - NODE_ENV=development
    volumes:
      - ./src:/usr/src/app
    depends_on:
      - db

  db:
    image: postgres:16
    restart: always
    volumes:
      - db-data:/var/lib/postgresql/data
    environment:
      - POSTGRES_PASSWORD=secret

volumes:
  db-data:

主なフィールド早見表

フィールド 用途
image 既存イメージを使用 redis:7-alpine
build Dockerfileからビルド build: ./backend
ports ポートマッピング - "3000:3000"
volumes データ・ソース共有 - ./data:/data
environments 環境変数 - DEBUG=true
depends_on 起動順制御 depends_on: [db]

主要コマンド

docker compose up -d      # 起動
docker compose down       # 停止・削除
docker compose ps         # 状態確認
docker compose logs -f    # ログ監視
docker compose exec app bash  # 中に入る

Dockerの応用例

Dockerはさまざまな場面で利用されています。以下にいくつかの応用例を紹介します。

  • 開発環境の構築: 開発者が同じ環境で作業できるように、Dockerを使って開発環境を構築します。
  • CI/CDパイプライン: 自動テストやデプロイを行うためのCI/CDパイプラインにDockerを組み込むことで、効率的な開発が可能になります。
  • マイクロサービスアーキテクチャ: アプリケーションを小さなサービスに分割し、それぞれを独立したコンテナとして管理します。

まとめ

この記事では、Dockerの基本から応用までを解説しました。Dockerを使うことで、アプリケーションの開発や運用がより効率的に行えるようになります。最初は難しく感じるかもしれませんが、実際に手を動かしてみることで理解が深まります。ぜひ、Dockerを使ってみてください!

Dockerに関するさらなる情報は、公式ドキュメントを参照してください。

Discussion