この記事で解決すること

「Dockerって何?なんで必要なの?」

プログラミングを学んでいると「Dockerで環境を作ってください」と言われることがあります。この記事では、Dockerが何を解決してくれるのかを説明します。

必要なもの

  • この記事を読むだけなら何も不要です
  • 試してみたい場合はDocker Desktop(無料)

Dockerを一言で説明すると

Dockerは 「アプリの動作環境をまるごとパッケージにする仕組み」 です。

手順

ステップ1: Dockerが解決する問題を理解する

プログラミングでよくある困りごとがあります。

先輩「このコード動かしてみて」
自分「エラーが出ます…」
先輩「え、こっちでは動くけど」

これは「自分のPCでは動くのに」問題と呼ばれています。

原因は、PCごとに環境が違うからです。

  • Pythonのバージョンが違う
  • 必要なライブラリが入っていない
  • OSが違う(Windows vs Mac)

Dockerは、アプリが動く環境をまるごとパッケージにして、どのPCでも同じ環境を再現できるようにします。

ステップ2: コンテナとイメージを理解する

Dockerには2つの重要な概念があります。

イメージ = 設計図

「Python 3.12 + Flask + PostgreSQL」のように、必要なものが全部書かれた設計図です。

コンテナ = 設計図から作った実体

イメージをもとに作られた、実際に動く環境です。起動・停止・削除が自由にできます。

イメージ(設計図)→ コンテナ(実体)
                  → コンテナ(実体)  ← 同じ設計図から何個でも作れる
                  → コンテナ(実体)

ステップ3: 身近な例で理解する

Dockerを料理に例えると:

  • イメージ = レシピ(材料と手順が書いてある)
  • コンテナ = レシピ通りに作った料理
  • Dockerfile = レシピを書くためのフォーマット
  • Docker Hub = レシピ共有サイト(他の人が作ったレシピを使える)

ステップ4: 実際のDockerfileを見てみる

Pythonアプリの場合、こんなファイルを書きます。

# Python 3.12の環境を使う
FROM python:3.12

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

# 必要なライブラリをインストール
COPY requirements.txt .
RUN pip install -r requirements.txt

# アプリのコードをコピー
COPY . .

# アプリを起動
CMD ["python", "app.py"]

このファイルがあれば、誰でも同じ環境を再現できます。

ステップ5: 基本コマンド3つ

Dockerを使うときに覚えるコマンドは3つです。

# イメージからコンテナを作って起動
docker run python:3.12

# 動いているコンテナを確認
docker ps

# コンテナを停止
docker stop コンテナID

仮想マシンとの違い

「仮想マシン(VM)と何が違うの?」という疑問があるかもしれません。

Docker仮想マシン
起動速度数秒数分
サイズ数十MB〜数百MB数GB
OSホストOSを共有個別にOSが必要
用途アプリの実行環境OS丸ごとの再現

Dockerは仮想マシンより軽量で高速です。アプリの実行環境を作るだけなら、Dockerの方が適しています。

初心者がDockerを使う場面

今すぐDockerを使いこなす必要はありません。以下の場面で出会ったときに思い出してください。

  • チーム開発で「docker-compose up で環境を立ち上げて」と言われたとき
  • チュートリアルで「Dockerで環境を作ります」と書いてあるとき
  • 「自分のPCでは動くのに」問題に遭遇したとき

まとめと次のステップ

  • Dockerは「アプリの動作環境をまるごとパッケージにする仕組み」
  • 「自分のPCでは動くのに」問題を解決する
  • イメージ(設計図)からコンテナ(実体)を作る
  • 仮想マシンより軽量で高速

興味が出てきたら、Docker Desktop をインストールして docker run hello-world を実行してみてください。


あわせて読みたい

関連リソース

Dockerをもっと学びたい方へ: