본문 바로가기
devops/docker

docker의 여러 컨테이너를 생성 후 연결해서 실행 (워드프레스, MySQL 연동)

by anjulia 2024. 3. 20.

https://product.kyobobook.co.kr/detail/S000001766500

 

그림과 실습으로 배우는 도커 & 쿠버네티스 | 오가사와라 시게타카 - 교보문고

그림과 실습으로 배우는 도커 & 쿠버네티스 | 컨테이너나 도커를 도통 이해하기 어려운 분들을 위한 본격 도커 입문서!이 책은 컨테이너 기술이 어렵게 느껴지는 엔지니어나 백엔드 기술에 자신

product.kyobobook.co.kr

위의 책을 참고하였습니다.

 

 

 

 

워드프레스가 데이터를 저장하고 관리하기위해

데이터베이스 관리시스템인 MySQL을 사용해 저장된 데이터를 읽고 쓸 수 있어야 한다. 

 

워드 프레스와, MySQL 두 개의 컨테이너를 만들고 연결하는 방법에 대해서 포스팅한다.

 

 

1. 도커 네트워크 생성

도커 네트워크를 생성한 다음에 컨테이너에서 네트워크에 접속하게 설정한다. 

docker network create wordpress000net1

 

 

2. MySQL 컨테이너 생성 및 실행 

docker run --name 컨테이너이름 -dit --net=네트워크이름 
-e MYSQL_ROOT_PASSWORD=MYSQL root 사용자 비밀번호
-e MYSQL_DATABASE = 데이터베이스 이름
-e MYSQL_USER = 데이터베이스 사용자
-e MYSQL_PASSWORD=MYSQL 비밀번호 
mysql --character-set-server=utf8mb4 (문자인코딩방식)
--collation-server=utf8mb4_unicode_ci (정렬순서)
--default-authentication-plugin=mysql_native_password(인증방식)

책 예제 
docker run --name mysql000ex11 -dit --net=wordpress000net1 -e MYSQL_ROOT_PASSWORD=myrootpass -e MYSQL_DATABASE=wordpress000db -e MYSQL_USER=wordpress000kun -e MYSQL_PASSWORD=wkunpass mysql --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci --default-authentication-plugin=mysql_native_password

 

3. wordpress 컨테이너 생성 및 실행

docker run --name 컨테이너 이름 -dit -net=네트워크이름 -p 포트설정 
-e WORDPRESS_DB_HOST=데이터베이스 컨테이너 이름
-e WORDPRESS_DB_NAME=데이터베이스 이름 
-e WORDPRESS_DB_USER=데이터베이스 사용자 이름 
-e WORDPRESS_DB_PASSWORD = 데이터베이스 패스워드

책 예제 : 
docker run --name wordpress000ex12 -dit --net=wordpress000net1 -p 8085:80 -e WORDPRESS_DB_HOST=mysql000ex11 -e WORDPRESS_DB_NAME=wordpress000db -e WORDPRESS_DB_USER=wordpress000kun -e WORDPRESS_DB_PASSWORD=wkunpass wordpress

 

 

 

 

mysql 컨테이너의 이름은 mysql000ex1이고, 워드프레스 컨테이너를 생성할 때, WORDPRESS_DB_HOST 에 이 mysql 컨테이너이름이 들어가야한다. WORDPRESS_DB_NAME에 MYSQL_DATABASE인자 값이 똑같이 들어가야한다

 

두 컨테이너를 연결하기위해서는 도커네트워크가 필요하므로 --net 인자에 생성한 도커네트워크의 값을 넣는다.

 

 

4. 컨테이너 상태 확인

 

 

ubuntu 호스트 포트 8085를 컨테이너 포트 80으로 포워딩한다. 

http://localhost:8085/ 를 입력하면 컨테이너 포트인 80으로 포워딩되고, 워드프레스 초기화면을 볼 수 있다. 

 

 

포트 3306은 MySQL 데이터베이스로 오는 외부 접속을 연결해주는 포트이다.