본문으로 건너뛰기

워드프레스 컨테이너 구축

Section1. 워드프레스 구축

워드프레스는 웹사이트를 손쉽게 만들 수 있는 오픈소스 소프트웨어다.
PHP 런타임, MySQL 데이터베이스, 아파치 서버가 필요하며, 이들을 각각 컨테이너로 분리해 구성할 수 있다.

우리는 워드프레스 컨테이너 + MySQL 컨테이너 구성으로 구축해볼 예정이다.

이 두 컨테이너가 서로 통신하기 위해서는 가상 네트워크가 필요하다.
컨테이너를 동일한 네트워크에 소속시켜야 서로 접근할 수 있다.

네트워크 생성 및 관리

docker network create mynet
docker network ls
docker network rm mynet

MySQL 컨테이너 생성

docker run \
--name mysql-container \
--net=mynet \
-d \
-e MYSQL_ROOT_PASSWORD=admin123 \
-e MYSQL_DATABASE=wp_db \
-e MYSQL_USER=wp_user \
-e MYSQL_PASSWORD=wp_pass \
mysql \
--character-set-server=utf8mb4 \
--collation-server=utf8mb4_unicode_ci \
--default-authentication-plugin=mysql_native_password
  • --name: 컨테이너 이름
  • --net: 네트워크 설정
  • -e: 환경 변수 설정
  • 마지막 줄의 mysql 뒤 옵션은 DB 초기 설정

워드프레스 컨테이너 생성

docker run \
--name wp-container \
--net=mynet \
-d \
-p 8080:80 \
-e WORDPRESS_DB_HOST=mysql-container \
-e WORDPRESS_DB_NAME=wp_db \
-e WORDPRESS_DB_USER=wp_user \
-e WORDPRESS_DB_PASSWORD=wp_pass \
wordpress
  • -p 8080:80: 브라우저에서 localhost:8080으로 접속
  • 환경변수를 통해 DB 설정을 연동

Section2. 워드프레스 및 MySQL 컨테이너 생성과 연동

전체 흐름 요약:

  1. 네트워크 생성

    docker network create mynet
  2. MySQL 컨테이너 생성

    docker run --name mysql-container --net=mynet -d \
    -e MYSQL_ROOT_PASSWORD=admin123 \
    -e MYSQL_DATABASE=wp_db \
    -e MYSQL_USER=wp_user \
    -e MYSQL_PASSWORD=wp_pass \
    mysql \
    --character-set-server=utf8mb4 \
    --collation-server=utf8mb4_unicode_ci \
    --default-authentication-plugin=mysql_native_password
  3. 워드프레스 컨테이너 생성

    docker run --name wp-container --net=mynet -d -p 8080:80 \
    -e WORDPRESS_DB_HOST=mysql-container \
    -e WORDPRESS_DB_NAME=wp_db \
    -e WORDPRESS_DB_USER=wp_user \
    -e WORDPRESS_DB_PASSWORD=wp_pass \
    wordpress

Section3. 명령어를 직접 작성하자

직접 터미널에 입력해보며 구성 및 설정을 익히는 것이 가장 좋은 학습 방법이다.
도커는 선언적이기 때문에 명확하고 반복적인 패턴을 가지므로 명령어 구조를 이해해두자.


Section4. 레드마인 및 MariaDB 컨테이너를 대상으로 연습

Redmine은 프로젝트 관리 도구이며, MariaDB와 함께 연동하여 사용할 수 있다.
WordPress + MySQL과 동일한 방식으로 도커 네트워크를 구성하여 실습이 가능하다.

💡 연습 후에는 사용하지 않는 컨테이너와 이미지를 정리하자

docker container rm -f 컨테이너이름
docker image rm 이미지이름
docker network rm 네트워크이름