2026년 08월 04일

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_PASSWORDMySQL 관리자 비밀번호
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

워드프레스 설치 화면이 나타나면:

  1. 언어 선택 (한국어)
  2. 사이트 제목, 관리자 아이디/비밀번호, 이메일 입력
  3. 워드프레스 설치하기 버튼 클릭

이제 관리자 페이지(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), 정기 백업 전략까지 추가로 고려하시길 권장합니다.