내가 한 노력들

[ docker ] Docker compose 이용해서, WordPress 환경 구축 본문

IT 공부/Docker

[ docker ] Docker compose 이용해서, WordPress 환경 구축

JONGI-N CHOI 2021. 12. 29. 12:00

이전에는 Docker에서 WordPress를 실행하기 위해서, MySQL과 WordPress 컨테이너를 따로따로 구축하여 연동을 했는데, docker compose를 이용하여 좀 더 쉽고 자동화된 과정으로 WordPress 환경을 구축해볼려고 합니다. 

 

버전 확인

docker-compose --version

docker compose는 보통 docker 설치와 함께 같이 설치가 됩니다. 

 

디렉토리 생성

# mkdir docker-compose
# cd docker-compose

 

docker-compose.yml

version: "3.9"
services:
  db:
    image: mysql:5.7
    volumes:
      - mysql-vol:/var/lib/mysql
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: wordpress
      MYSQL_DATABASE: wordpress
      MYSQL_USER: wordpress
      MYSQL_PASSWORD: wordpress

  wordpress:
    depends_on:
      - db
    image: wordpress:latest
    volumes:
      - wp-vol:/var/www/html
    ports:
      - "8080:80"
    restart: always
    environment:
      WORDPRESS_DB_HOST: db
      WORDPRESS_DB_NAME: wordpress
      WORDPRESS_DB_USER: wordpress
      WORDPRESS_DB_PASSWORD: wordpress
volumes:
  mysql-vol: {}
  wp-vol: {}

yml포멧의 파일을 하나 생성을 합니다. 

yml포멧은 XML, JSON과 같은 YAML(YAML Ain't Markup Language)이라는 데이터 양식으로써, 들여쓰기를 통해서 데이터를 구분을 합니다. 

 

해당 문법을 잘 몰라도, 대충 어느 흐름이라는 것을 한눈에 알아 볼 수 있습니다.

기존에는 docker run ~~ 를 통해서 컨테이너를 생성했던 것을 yml파일에 services의 종류, image는 무엇인지 환경설정은 어떻게 설정할 것인지를 표시해줍니다. 

 

docker compose 실행

docker-compose up -d

docker-compose up을 사용하면, 자동적으로 docker-compose.yml파일을 찾아서 실행을 합니다. 

-d 옵션은 백그라운드 실행을 의미합니다. 

 

 

컨테이너 확인

docker ps

wordpress와 mysql의 컨테이너가 생성되고 실행된 것을 볼 수 있습니다. 

 

 

브라우저로 확인해보면, 정상적으로 접속이 되는 것까지 확인이 가능합니다. 

yml파일에 기존의 volume을  mount했기 때문에, 기존의 글이 남아있는 것을 확인할 수 있습니다.

 

docker compose 중지 (컨테이너 삭제) 

docker-compose down


docker-compose를 사용함으로써, 기존의 작업을 자동화형태로 변환해줄 수 있습니다.

그리고 yml파일로 관리하기 때문에, 환경설정이라던가 한 눈에 컨테이너의 구성을 확인하기도 편합니다.