Docker Compose로 워드프레스 설치하는 방법 (초보자를 위한 완벽 가이드)
워드프레스를 로컬 PC나 서버에 설치할 때 흔히 겪는 어려움은 PHP 버전, 데이터베이스 설정, 웹서버 구성 등을 일일이 맞춰야 한다는 점입니다. Docker Compose를 사용하면 이런 복잡한 과정을 몇 줄의 설정 파일과 명령어 하나로 끝낼 수 있습니다.
이 글에서는 Docker Compose를 이용해 워드프레스와 MySQL 데이터베이스를 함께 구축하는 방법을 처음부터 끝까지 따라 하기 쉽게 설명합니다.
1. 왜 Docker Compose로 워드프레스를 설치할까?
- 환경 오염 없음: 로컬 PC에 PHP, MySQL을 직접 설치하지 않아도 됩니다.
- 재현 가능성: 설정 파일 하나로 어떤 컴퓨터에서든 동일한 환경을 만들 수 있습니다.
- 빠른 삭제/재설치: 테스트 후 컨테이너만 삭제하면 흔적 없이 깨끗하게 정리됩니다.
- 버전 관리 용이: PHP, MySQL, 워드프레스 버전을 자유롭게 지정하고 바꿀 수 있습니다.
2. 사전 준비물
시작하기 전에 아래 두 가지가 설치되어 있어야 합니다.
- Docker: 컨테이너를 실행하는 엔진
- Docker Compose: 여러 컨테이너를 한 번에 관리하는 도구 (최신 Docker Desktop에는 기본 포함)
터미널에서 아래 명령어로 설치 여부를 확인하세요.
docker --version
docker compose version
버전 정보가 출력되면 정상적으로 설치된 것입니다.
3. 프로젝트 폴더 생성
작업할 폴더를 하나 만들고 이동합니다.
mkdir my-wordpress-site
cd my-wordpress-site
4. docker-compose.yml 파일 작성
프로젝트 폴더에 docker-compose.yml 파일을 만들고 아래 내용을 입력합니다.
version: '3.8'
services:
db:
image: mysql:8.0
container_name: wordpress_db
restart: always
environment:
MYSQL_ROOT_PASSWORD: rootpassword
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpresspassword
volumes:
- db_data:/var/lib/mysql
wordpress:
image: wordpress:latest
container_name: wordpress_app
depends_on:
- db
restart: always
ports:
- "8080:80"
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_NAME: wordpress
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpresspassword
volumes:
- wordpress_data:/var/www/html
volumes:
db_data:
wordpress_data:
설정 항목 설명
| 항목 | 설명 |
|---|---|
db 서비스 | MySQL 8.0 데이터베이스 컨테이너 |
wordpress 서비스 | 워드프레스 앱 컨테이너 |
MYSQL_ROOT_PASSWORD | MySQL 관리자 비밀번호 |
MYSQL_DATABASE | 워드프레스가 사용할 데이터베이스 이름 |
ports: "8080:80" | 로컬 8080 포트로 접속하면 컨테이너의 80 포트로 연결 |
volumes | 컨테이너를 삭제해도 데이터(글, DB)가 유지되도록 저장 |
보안 팁: 위 비밀번호는 예시용입니다. 실제 운영 환경에서는 반드시 복잡한 비밀번호로 변경하고,
.env파일로 분리해 관리하는 것을 권장합니다.
5. 컨테이너 실행하기
파일 저장 후 아래 명령어를 입력합니다.
docker compose up -d
-d옵션은 백그라운드(데몬 모드)로 실행한다는 의미입니다.- 처음 실행 시 이미지를 다운로드하므로 몇 분 정도 걸릴 수 있습니다.
실행 상태 확인:
docker compose ps
wordpress_app과 wordpress_db 컨테이너가 모두 Up 상태라면 정상입니다.
6. 브라우저에서 워드프레스 설치 마무리
웹 브라우저를 열고 아래 주소로 접속합니다.
http://localhost:8080
워드프레스 설치 화면이 나타나면:
- 언어 선택 (한국어)
- 사이트 제목, 관리자 아이디/비밀번호, 이메일 입력
- 워드프레스 설치하기 버튼 클릭
이제 관리자 페이지(http://localhost:8080/wp-admin)에 로그인해 바로 글쓰기를 시작할 수 있습니다.
7. 자주 쓰는 관리 명령어
# 컨테이너 중지
docker compose stop
# 컨테이너 재시작
docker compose start
# 컨테이너 및 네트워크 삭제 (데이터는 유지)
docker compose down
# 컨테이너 + 볼륨(데이터)까지 완전 삭제
docker compose down -v
# 실시간 로그 확인
docker compose logs -f wordpress
8. phpMyAdmin 추가하기 (선택 사항)
데이터베이스를 GUI로 관리하고 싶다면 docker-compose.yml에 아래 서비스를 추가하세요.
phpmyadmin:
image: phpmyadmin/phpmyadmin
container_name: wordpress_pma
restart: always
ports:
- "8081:80"
environment:
PMA_HOST: db
MYSQL_ROOT_PASSWORD: rootpassword
추가 후 docker compose up -d를 다시 실행하면 http://localhost:8081에서 phpMyAdmin에 접속할 수 있습니다.
9. 트러블슈팅
| 문제 | 원인 및 해결 방법 |
|---|---|
| 8080 포트 접속 안 됨 | 다른 프로그램이 8080 포트를 사용 중일 수 있습니다. ports를 "8090:80" 등으로 변경하세요. |
| 데이터베이스 연결 오류 | depends_on은 실행 순서만 보장할 뿐 DB가 완전히 준비될 때까지 기다리지 않습니다. 몇 초 후 새로고침하면 해결되는 경우가 많습니다. |
| 데이터가 사라짐 | docker compose down -v를 실행하면 볼륨도 함께 삭제됩니다. 데이터를 유지하려면 -v 옵션 없이 down만 사용하세요. |
마무리
Docker Compose를 활용하면 워드프레스 개발 및 테스트 환경을 몇 분 만에 구축할 수 있습니다. 로컬 환경을 더럽히지 않고도 여러 버전의 워드프레스를 동시에 띄워볼 수 있다는 것이 가장 큰 장점입니다.
실제 운영 서버에 배포할 때는 비밀번호 보안, HTTPS 적용(Nginx + Let’s Encrypt), 정기 백업 전략까지 추가로 고려하시길 권장합니다.