この記事について
この記事では、Laravel開発をDockerでやってみた私が、「そもそもDockerって何?」「なぜこれをやるの?」を自分なりに整理してみた記録です✍️
環境構築が苦手でも、Web開発は大好き!という方に向けて、「イメージ?ボリューム?なにそれ美味しいの?」状態からのスタートを優しくまとめました。
🍱 Dockerってなに?をざっくり言うと…
Dockerとは、「自分だけの仮想の環境を用意して、ソフトを動かす」仕組み!
いろんなソフトを動かすと、環境がごちゃごちゃしがち…。
でもDockerを使えば、隔離された環境(=コンテナ)を用意して、スッキリ・再現性高く開発できるんです!
🧠 出てくる用語がややこしいので整理!
🧊 イメージとは?
- コンテナの設計図
- Laravelで言えば、PHPやComposer、必要な拡張モジュールが入った環境のひな型
- 1つのイメージから、何個でもコンテナが作れる!
docker build -t my-laravel-app .🍱 コンテナとは?
- 実際に動いているアプリケーションの入った“仮想の箱”
- イメージから生まれる動く存在
- LaravelやNginxなど、それぞれの役割ごとに1つのコンテナとして動かす!
docker ps
docker exec -it コンテナ名 bash💾 ボリュームとは?
- データを永続化(消えないように)保存するための外付け倉庫
- コンテナの中だけにデータがあると、削除時にすべて消える!
- MySQLなどのDBデータは必ずボリュームに保存するようにする💡
docker volume ls
docker volume inspect ボリューム名それぞれの関係性は?
コンテナ・イメージ・ボリュームが一体結局何やっているのかよくわからない。わかりにくいので教室に例えるとこんな感じ。

| 要素 | 教室に例えると… | なにしてるの? |
|---|---|---|
| 📘 イメージ | 教科書セット(国語・英語など) | 必要な知識・ツールのかたまり(=設計図) |
| 🪑 コンテナ | 机 | 実際に作業する場所(=実行中の環境) |
| 📒 ボリューム | ノート(開かれた) | 記録・データ保存(=永続化) |
🧩 どうやって使い分けるの?
| 用語 | 一言で言うと | 消える? | 役割 |
|---|---|---|---|
| イメージ | 設計図・冷凍弁当 | ❌ | コンテナを作る元 |
| コンテナ | 実行中の環境 | ✅(削除時) | アプリケーションが動く場所 |
| ボリューム | データ保存倉庫 | ❌ | DBやファイルの永続化に使う |
🖋 なぜ .yml ファイルを書くのか?
それはDockerに「このコンテナたちをどう構成して動かすか」を伝えるため!
version: '3'
services:
app:
build:
context: .
dockerfile: Dockerfile
volumes:
- ./src:/var/www/html
web:
image: nginx
ports:
- "80:80"
volumes:
- ./nginx/default.conf:/etc/nginx/conf.d/default.conf
このように、Laravelのソースコード、PHPの環境、Nginxの連携方法などを1つのファイルで管理できます✨
実は、docker compose up で一発起動できるのもこのファイルのおかげ✨
どのコンテナを使うか、どうつなぐか、どんな設定で起動するか…
全部 docker-compose.yml に書いてあるから、「設計図さえあれば、誰でも同じ環境を即座に再現できる」というわけなんです!
🧠 GUIでLaravel動かせるのになんでわざわざ?
便利なGUIツール(Laravel Herdなど)もあるけど…
- 中身がブラックボックスで学習になりにくい
- Gitでチームに共有しにくい
- エラーの原因がわかりづらい
だからこそDockerfileやdocker-compose.ymlを自分で書くと「ちゃんと理解した開発」ができる!のです🔥
🧁 おまけ:今後やりたいこと
- Laravelの開発環境をもう少し整理
- VueやReact用のDockerfileも作ってみたい!
- WordPressバージョンも試してみたい!


コメントを残す