この記事で解決すること
「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をもっと学びたい方へ:
リンク