로컬에 아무것도 없어도 괜찮아! Docker로 Laravel 환경 쉽게 만들기
처음부터 아무것도 설치돼 있지 않은 상태에서 개발을 시작하려고 하면 진짜 머리 하얘져요.
PHP도 없고, Composer도 없고, Laravel은 더더욱 없고... 뭘 어디서부터 어떻게 해야 할지 막막하죠. 저도 그랬어요.
근데 다행히도, 전부 다 설치할 필요 없어요. 진심입니다. 그냥 Docker만 있으면 돼요. 그걸로 우리가 필요한 개발 환경을 싹 만들어버릴 수 있거든요. 완전히 분리된 컨테이너 안에서 모든 게 돌아가니까 시스템이 더러워질 일도 없고요.
이번엔 제가 직접 해보고 정리한 Laravel 개발 환경 구축 과정을 하나씩 공유해볼게요. 진짜 개발에만 집중할 수 있는 환경, 함께 만들어봐요!

1단계: docker-compose.yml부터 만들어보자
시작은 단순해요. 프로젝트 폴더 안에 docker-compose.yml 파일 하나 만들고요.
이 파일이 여러 개의 컨테이너가 어떻게 움직일지 정해주는 지휘자 역할을 하죠.
파일에는 이렇게 적어주면 됩니다:
version: "3.8"
services:
자, 이제 컨테이너들을 하나씩 추가해볼게요. 마치 퍼즐 맞추듯이요.
2단계: 웹 서버는 Nginx로
들어오는 요청을 처음으로 받아주는 친구가 바로 Nginx예요. 가볍고 빠르기도 해서 자주 쓰이죠.
공식 이미지 중 nginx:stable-alpine을 선택했어요. 가볍고 안정적이라 좋아요.
server:
image: "nginx:stable-alpine"
ports:
- "8000:80"
이렇게 하면 localhost:8000에서 웹사이트가 열리게 됩니다. 처음 열릴 때 약간 감동이 오죠.
그다음엔 nginx라는 폴더를 하나 만들고 default.conf 파일을 추가해줍니다. 이건 Nginx가 PHP 파일을 어떻게 처리할지 알려주는 설정이에요.
마운트는 이렇게 해요:
volumes:
- ./nginx/default.conf:/etc/nginx/conf.d/default.conf:ro
읽기 전용이라서 실수로 수정되는 일도 없고, 깔끔하죠.

3단계: PHP 컨테이너 커스터마이징하기
Laravel은 단순한 PHP로는 안 됩니다. 몇 가지 확장 모듈이 꼭 필요해요. 그래서 그냥 기본 PHP 이미지를 쓰는 게 아니라, 우리가 필요한 걸 추가해서 커스텀 이미지로 만들어야 해요.
먼저 dockerfiles라는 폴더를 만들고, 그 안에 php.dockerfile이라는 파일을 만들어주세요.
내용은 아주 간단합니다:
FROM php:7.4-fpm-alpine
RUN docker-php-ext-install pdo pdo_mysql
WORKDIR /var/www/html
이제 docker-compose.yml에 이걸 연결해줍니다:
php:
build:
context: ./dockerfiles
dockerfile: php.dockerfile
volumes:
- ./src:/var/www/html:delegated
./src 폴더는 Laravel 소스를 넣을 폴더예요. 아직은 비어있지만 곧 가득 찰 거예요.
4단계: Nginx랑 PHP 연결해주기
default.conf 안에서 이렇게 써주면 돼요:
fastcgi_pass php:9000;
Docker Compose에서는 각 서비스 이름으로 서로를 부를 수 있어서, php라는 이름을 그대로 쓰면 됩니다. 따로 포트를 외부에 노출할 필요도 없고요.

5단계: Composer 설치 없이 Composer 쓰기
Laravel은 Composer 없으면 안 되죠. 근데 굳이 로컬에 설치 안 해도 돼요. 그냥 Docker로 한 번에 처리할 수 있어요.
한 줄이면 충분해요:
docker run --rm -v $(pwd)/src:/app composer install
이렇게 하면 src 폴더에 필요한 패키지가 싹 설치돼요. 마치 마법처럼요.
6단계: Node도 Docker로 처리하자
프론트엔드 자산 빌드할 때도 Node가 필요하잖아요. npm이나 vite 같은 거 돌릴 때요. 그것도 Docker로!
docker run --rm -v $(pwd)/src:/app -w /app node:18 npm install && npm run dev
이렇게 하면 로컬 Node 안 깔아도 다 됩니다. 저는 이 방식 쓰고 나서 Node 버전 충돌로 스트레스받는 일 진짜 줄었어요.
7단계: Artisan도 잘 돌아가요
Laravel 개발하다 보면 Artisan CLI 자주 쓰게 돼요. 마이그레이션, 시드, 캐시 클리어 등등.
PHP 컨테이너 안에서 바로 이렇게 실행하면 됩니다:
docker-compose exec php php artisan migrate
코드가 연결돼 있으니까 문제 없이 돌아가요. 처음 실행됐을 때 뭔가 뿌듯합니다.
8단계: MySQL도 당연히 컨테이너로
Laravel에서 DB는 거의 필수니까요. MySQL 컨테이너도 같이 설정해줄게요:
db:
image: mysql:5.7
environment:
MYSQL_ROOT_PASSWORD: secret
MYSQL_DATABASE: laravel
volumes:
- dbdata:/var/lib/mysql
그리고 아래쪽에 볼륨도 꼭 추가해주세요:
volumes:
dbdata:
이제 .env 파일에서 DB_HOST=db로 설정하면 Laravel이 이 MySQL 컨테이너랑 연결돼요. 진짜 신기하죠.
왜 이 방법을 추천하냐고요?
처음엔 좀 복잡해 보일 수 있어요. 하지만 한 번만 제대로 세팅해두면, 그다음부터는 정말 편해요.
- 팀원들과 공유해도 다 똑같은 환경
- 로컬에 아무것도 안 깔아도 작동
- Redis, Horizon 같은 것도 쉽게 추가 가능
- 환경 충돌 없이 쾌적하게 개발 가능
전 이거 세팅해두고 나서 개발이 훨씬 자유로워졌어요. 망가질까 걱정도 없고, 새로운 프로젝트도 뚝딱 시작할 수 있고요.
Docker가 귀찮을 수도 있지만, 익숙해지면 정말 든든한 친구가 됩니다. 이제 여러분 차례예요. 코드에만 집중하세요. 환경은 Docker가 다 해줄 거예요.
'SW > Kubernetes, Docker' 카테고리의 다른 글
| Laravel Docker 설치 완벽 가이드 | Composer부터 권한 오류 해결까지 한 번에 (0) | 2025.09.28 |
|---|---|
| Laravel 개발환경 Docker로 만들기 - MySQL 연동까지 쉽게 따라하는 방법 (0) | 2025.09.27 |
| Docker로 Laravel 개발 환경 쉽게 구성하는 법 (PHP 설치 없이도 OK!) (0) | 2025.09.25 |
| Docker Compose로 개발 환경 자동화하는 법 (Utility Container 활용법 포함!) (0) | 2025.09.24 |
| 실수 없이 npm 명령어 실행하는 법 – Docker Entrypoint로 깔끔하게! (0) | 2025.09.23 |