본문 바로가기

잡부생활/Docker

도커 컨테이너(docker container)의 docker-compose.yml를 이용하여 워드프레스(wordpress) 구성하기

도커 컴포즈를 이용하여 워드프레스를 쉽게 구성할 수 있다.

 

먼저 환경변수를 생성한다.

.env 파일

MYSQL_ROOT_PASSWORD=mysql_root
MYSQL_USER=wp_user
MYSQL_PASSWORD=wp_password

 

그리고 도커 컴포즈를 생성한다.

docker-compose.yml

version: '3.3'

services: 
  db:
    image: mysql:latest
    env_file: .env
    environment:
      - MYSQL_DATABASE=wordpress
    volumes:
      - dbdata:/var/lib/mysql
    command: --default-authentication-plugin=mysql_native_password

  wordpress:
    depends_on:
      - db
    image: wordpress:latest
    env_file: .env
    environment: 
      - WORDPRESS_DB_HOST=db
      - WORDPRESS_DB_USER=$MYSQL_USER
      - WORDPRESS_DB_PASSWORD=$MYSQL_PASSWORD
      - WORDPRESS_DB_NAME=wordpress
    volumes:
      - wordpress:/var/www/html
    ports: 
      - "80:80"

  phpmyadmin:
    depends_on:
      - db
    image: phpmyadmin/phpmyadmin:latest
    env_file: .env
    environment:
      PMA_HOST: db
      MYSQL_ROOT_PASSWORD: $MYSQL_ROOT_PASSWORD
    ports:
      - 3333:80

volumes:
  wordpress:
  dbdata:

도커컴포즈를 통해 각 도커 컨테이너 이미지들의 설정을 진행했다. volumes의 경우 dbdata로 링크되어 도커 컨테이너가 재시작을 해도 persistent 한 볼륨을 구성할 수 있다. 

 

내 경우 VScode를 이용해서 생성했다.

VScode

그럼 아래와 같은 메시지를 확인할 수 있다. db, wordpress, phpmyadmin 도커 컨테이너를 생성한다.

Status: Downloaded newer image for phpmyadmin/phpmyadmin:latest
Creating wordpress_project_db_1 ... done
Creating wordpress_project_wordpress_1  ... done
Creating wordpress_project_phpmyadmin_1 ... done

 

또한 워드프레스 컨테이너가 MySQL 컨테이너에 접근을 실패했다는 로그도 볼 수 있다. 이것은 MySQL 컨테이너가 생성되기 전에 워드프레스 컨테이너가 먼저 생성된 것으로 MySQL 컨테이너가 생성되면 해결된다.

wordpress_1   | MySQL Connection Error: (2002) Connection refused

 

그럼 브라우저를 통해 127.0.0.1에 접근하면 WordPress가 생성된 것을 확인할 수 있다.

워드프레스 생성 화면