Containerization/Docker

[Docker-Compose (2/2)] 도커 Compose를 통해 워드프레스를 실행해보자

쉬지마 이굥진 2024. 5. 20. 16:30

<이전 글>

 

[Docker] 도커 Compose 톺아보기

이 글은 2024 05월 원티드 프리온보딩 BE 챌린지 '도커'편 수업을 회고하며 정리한 글입니다. [Docker] 도커 이미지 만드는 법! (feat. Dockerfile)이 글은 2024 05월 원티드 프리온보딩 BE 챌린지 '도커'편

developer-jinnie.tistory.com

이전 글을 통해서 Docker Compose 파일의 개념을 자세히 학습해보는 시간을 가졌다. 이번 포스팅은 이 글을 토대로 워드프레스를 도커 컴포즈로 실행해보는 실습 과정을 기록해보려 한다.

 

WordPress는 모두가 아는 것 처럼 유명한 블로그 시스템이다. WordPress 자체 뿐만 아니라 MySQL 컨테이너와 연결해서 두 개의 컨테이너를 관리해보는 실습을 해보려 한다.

 

✏️Wordpress 컨테이너 설정 정보

설정 설명
이미지 wordpress
Listening Port 80
WORDPRESS_DB_HOST 환경변수 디비 주소 (db:3306)
WORDPRESS_DB_USER 환경변수 디비 사용자 (wp)
WORDPRESS_DB_PASSWORD 환경변수 디비 패스워드 (wp)
WORDPRESS_DB_NAME 환경변수 디비 이름 (wp)

 

✏️MySQL 컨테이너 설정 정보

이 컨테이너에서는 Wordpress 블로그 시스템에서 저장하고 있는 모든 데이터를 이 MySQL 컨테이너에 저장한다. 또한, 이 데이터베이스에서 데이터가 저장되는 디렉터리는 var/lib/mysql 위치이다.

설정 설명
이미지 mysql:5.7
Listening Port 3306
MYSQL_ROOT_PASSWORD 환경변수 디비 root 비밀번호
MYSQL_DATABASE 환경변수 디비 데이터베이스 (wp)
MYSQL_USER 환경변수 디비 사용자 (wp)
MYSQL_PASSWORD 환경변수 디비 패스워드 (wp)
디비 데이터 저장 디렉토리 /var/lib/mysql

 

 

✏️구성도

 

✏️yml 파일 만들기

상단의 표에 담긴 설정 정보들을 docker-compose.yml 파일로 옮겨 적은 것이다.

version: '3.3'

services:
   db:
     image: mysql:5.7
     volumes:
       - db_data:/var/lib/mysql
     environment:
       MYSQL_ROOT_PASSWORD: somewordpress
       MYSQL_DATABASE: wordpress
       MYSQL_USER: wordpress
       MYSQL_PASSWORD: wordpress

   wordpress:
     image: wordpress:latest
     ports:
       - "60000:80"
     restart: always
     environment:
       WORDPRESS_DB_HOST: db:3306
       WORDPRESS_DB_USER: wordpress
       WORDPRESS_DB_PASSWORD: wordpress
       WORDPRESS_DB_NAME: wordpress

volumes:
    db_data: {}

 

설명

  • 먼저 db라는 이름으로 MySQL 서비스를 정의했다.
  • volumes 안에 db_data 라는 이름을 적어 두었는데, 이건 가장 하단에 보이는 volumes 정의에서 가져온 것이다.
    • 그리고 MySQL이 내부적으로 저장하는 /var/lib/mysql 이라는 디렉토리를 이 db_data에 서로 마운트 했다.
  • environment 항목에서 MySQL 설정에 필요한 4가지 설정 값들을 지정해줬다.
  • 그리고 그 밑에 wordpress 서비스를 정의했다.
    • 이미지로는 wordpress (가장 최신 버전), 그리고 포트는 60000번 포트를 80번 포트로 연결했다. (임의로 지정 가능)
    • 환경 변수로는 4가지 값을 지정했는데, 이 중에 DB_USER, PASSWORD, NAME 값은 상단에 MySQL 컨테이너에 지정한 데이터베이스의 이름과 유저, 패스워드 값과 모두 동일하다고 보면 된다.

이렇게 docker-compose.yml 파일을 저장하고 실행을 해보자.

 

✏️yml 파일 실행

 

cd /mnt/c/webui_study

 

내 docker-compose.yml 파일이 webui_study 파일 아래에 있었기 때문에, 우분투 환경에서 C:\webui_study 디렉토리로 접근하기 위해 경로를 WSL 형식으로 변환해주고 해당 디렉토리로 이동하는 명령어를 입력해줬다. (따라서 실습 환경에 따라 이 명령어는 알맞게 변경하거나 입력하지 않아도 무방함)

 

docker-compose up

 

그 다음 서비스를 구동시켜주는 docker-compose up 명령어로 서비스를 실행시켜줬다.

 

✏️결과

짜잔! 명시해 둔 60000번 포트 번호로 접속해주니, wordpress 처음 실행 시 나오는 설정 페이지가 잘 나타나는 것을 확인할 수 있다.