第2部:Docker入門 Step 5 / 24

Dockerとは

Dockerは、アプリケーションを「コンテナ」という独立した環境で動かす技術。「自分のPCでは動くのに...」という問題を解決します。

Dockerが解決する問題

Dockerなしの場合

  • ✗ 「自分のPCでは動くのに、サーバーで動かない」
  • ✗ 「Node.jsのバージョンが違う」
  • ✗ 「チームメンバーの環境が揃わない」
  • ✗ 「MySQLのインストールが面倒」
  • ✗ 「WindowsとMacで動作が違う」

Dockerありの場合

  • ○ 開発・本番で同じ環境
  • ○ バージョンを固定できる
  • ○ コマンド1つで環境構築
  • ○ MySQLも簡単に起動
  • ○ どのOSでも同じ動作

Docker の基本概念

📦

コンテナ(Container)

アプリケーションとその実行環境をまとめた「箱」。軽量で起動が速い。

例:Pythonアプリ + Python 3.11 + 必要なライブラリ = 1つのコンテナ

📋

イメージ(Image)

コンテナの「設計図」。イメージからコンテナを作成する。

例:python:3.11 イメージ → Pythonが入ったコンテナを作成

📝

Dockerfile

イメージを作るための「レシピ」。必要な手順を記述。

例:Pythonイメージ + pip install → カスタムイメージ

🏪

Docker Hub

イメージを共有するためのレジストリ(保管庫)。

例:python, mysql, node などの公式イメージをダウンロード可能

仮想マシン vs Docker

仮想マシン(VM)

App A
Guest OS
App B
Guest OS
Hypervisor
Host OS
  • ・OSごとにメモリ消費
  • ・起動に数分かかる
  • ・数GB〜数十GBのサイズ

Docker

App A
App B
Docker Engine
Host OS
  • ・OSを共有(軽量)
  • ・起動は数秒
  • ・数MB〜数百MBのサイズ

Docker Desktop のインストール

手順

  1. 1

    Docker Desktop をダウンロード

    https://www.docker.com/products/docker-desktop/

  2. 2

    インストーラーを実行

    Windowsの場合はWSL2が必要(インストーラーが案内してくれる)

  3. 3

    Docker Desktop を起動

    起動後、タスクバーにクジラのアイコンが表示される

  4. 4

    動作確認

    docker --version

注意:Docker Desktopは、一定規模以上の企業での利用は有料です。個人・学習・小規模企業は無料で使えます。

はじめてのコンテナ

Hello Worldコンテナを実行してみましょう。

docker run hello-world

このコマンドは以下を行います:

  1. 1. hello-worldイメージをDocker Hubからダウンロード
  2. 2. そのイメージからコンテナを作成
  3. 3. コンテナ内のプログラムを実行
  4. 4. 結果を表示して終了

Web開発でのDocker活用

典型的な構成

Frontend

Next.js

Backend

FastAPI

Database

MySQL

各コンポーネントを別々のコンテナで実行

メリット

  • コマンド1つで全環境を起動(docker compose up)
  • MySQLをインストールしなくてもコンテナで動く
  • 本番環境と同じ構成で開発できる
  • チームメンバー全員が同じ環境

まとめ

  • Dockerは「環境の違い」問題を解決する
  • コンテナは軽量で起動が速い
  • イメージ(設計図)からコンテナ(実体)を作る
  • Docker Desktopでローカル環境を構築
データベース設計 次へ:Docker基本操作