워드프레스 컨테이너 구축
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 컨테이너 생성과 연동
전체 흐름 요약:
-
네트워크 생성
docker network create 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 -
워드프레스 컨테이너 생성
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 네트워크이름