Laravelを使って開発を始めたいけど、環境構築が面倒…
そんなあなたに贈る、DockerでサクッとLaravelを動かすための手順を紹介します!
Windowsでの実体験をもとに、つまずきやすいポイントもフォローしています🛠️
✅ この記事でできるようになること
- Docker Desktopのインストール
- WSL2の準備と更新
- Laravel用のプロジェクトフォルダ作成
- docker-composeでWebサーバ・PHP・DBの構築
- Laravelのインストールと起動確認
🛠 前提
- Windows 10 か 11(WSL2有効)
- Docker未インストール状態からスタート
インストールから起動まで
① Docker Desktopのインストール
- Docker公式サイト にアクセス
- 自分のPCにあったバージョン(Windows → AMD64など)を選んでインストーラーをダウンロード
- インストーラーを実行 → 「WSL2を使う」にチェックを入れてインストール
初回起動時に「WSL needs updating」という画面が出た場合、PowerShellで以下を実行しますwsl --update
- インストール後はPCを再起動
- 初回起動後に「Accept」して進む
- 「WSLの更新を求められたら」→ PowerShellで以下を実行:
wsl --update
wsl --set-default-version 2② 開発用フォルダの作成
以下のような構成を想定します:
C:\Users\ユーザー名\projects\laravel-docker
PowerShellで以下のようにフォルダを作成:
cd ~
mkdir projects
cd projects
mkdir laravel-docker
cd laravel-docker
mkdir nginx php src③ Docker関連ファイルの作成
以下のような構成で関連ファイルを作成していきます
laravel-docker/ ← プロジェクトのルート
├── docker-compose.yml ← コンテナの定義ファイル
├── nginx/
│ └── default.conf ← Nginxの設定ファイル
├── php/
│ └── Dockerfile ← PHP(Laravel実行環境)のDockerfile
└── src/ ← Laravelアプリケーション本体(後で生成される)
src/ フォルダは composer create-project laravel/laravel . を実行したあとにLaravel一式がここに展開されます。
📄 docker-compose.yml
version: '3.8'
services:
app:
build:
context: ./php
container_name: laravel_app
volumes:
- ./src:/var/www
working_dir: /var/www
ports:
- "9000:9000"
networks:
- laravel
web:
image: nginx:alpine
container_name: laravel_web
ports:
- "80:80"
volumes:
- ./src:/var/www
- ./nginx/default.conf:/etc/nginx/conf.d/default.conf
depends_on:
- app
networks:
- laravel
db:
image: mysql:8.0
container_name: laravel_db
restart: always
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: laravel
MYSQL_USER: laravel
MYSQL_PASSWORD: secret
ports:
- "3306:3306"
volumes:
- db_data:/var/lib/mysql
networks:
- laravel
volumes:
db_data:
networks:
laravel:
driver: bridge
📄 php/Dockerfile
FROM php:8.2-fpm
RUN apt-get update && apt-get install -y \
zip unzip curl libzip-dev libonig-dev libxml2-dev \
&& docker-php-ext-install pdo_mysql mbstring zip exif pcntl
COPY --from=composer:latest /usr/bin/composer /usr/bin/composer
※拡張子不要で【Dockerfile】というファイル名にする
📄 nginx/default.conf
server {
listen 80;
server_name laravel.local;
root /var/www/public;
index index.php index.html;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
fastcgi_pass app:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
location ~ /\.ht {
deny all;
}
}
④ Dockerを起動&Laravelをインストール
まずDockerを起動し、以下のコマンドでコンテナを立ち上げます:
docker compose up -d --build次にLaravelをインストール:
docker compose exec app composer create-project laravel/laravel .Laravelインストール後にエラーが出たらパーミッションの変更を試してください。
※storage と bootstrap/cache の権限が足りないと「Permission denied」エラーが出る!docker compose exec app chmod -R 777 storage bootstrap/cache
⑥ hostsファイルの編集(管理者で開く)
http://laravel.local でアクセスしたいので、以下に追記:
C:\Windows\System32\drivers\etc\hosts
末尾に以下を追加:
127.0.0.1 laravel.local⑦ Laravelにアクセス!
🎉 http://laravel.local にアクセスすると、Laravelのトップ画面が出れば大成功!

🔧 MySQL接続にする場合は…
.env を以下のように変更:
DB_CONNECTION=mysql
DB_HOST=db
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=laravel
DB_PASSWORD=secretマイグレーション実行:
docker compose exec app php artisan config:clear
docker compose exec app php artisan migrate✅ Dockerの開始・停止方法
開始(再開)
docker compose up -d停止
docker compose down📝 まとめ
- DockerでLaravelの環境構築が爆速&再現性抜群!
- 複数PC間でGitとDockerを使えば完全な共有開発が可能!


コメントを残す