본문 바로가기
Docker&Container

[Docker] 도커 기반의 MySQL DBMS 셋업, 설치, 구성 방법(테스트 디비,DB 서버 만들기)

by deepdivers 2024. 7. 14.

 

 


도커 기반의 MySQL 셋업이 필요한 이유

 

 

 

로컬 개발환경에 여러 DBMS에 대한 테스트 베드가 필요한 경우

컨테이너로 각 SW별 런타임 환경을 격리하여 실행 가능한 도커를

이용한 셋업을 추천한다.

 

또한 잠깐 MySQL에서 테스트가 필요할 때 깔끔하게 쓰고

폐기 할 수 있는점 또한 큰 이점이다.

 

이번 페이지에서는 도커 기반의 MySQL 셋업 방법에 대해 알아보자

 

도커에 대한 설치가 되어 있다는 가정 하에 진행 할 예정이므로

혹시 도커가 설치되어 있지 않을 경우 아래 경로를 참고한다.

 

https://perfaction.tistory.com/entry/Docker-Mac-OS에-도커-환경-설치하기맥북-M1-칩-맥OS-도커-공홈

 

[Docker] Mac OS에 도커 환경 설치하기(맥북, M1 칩, 맥OS, 도커 공홈)

업무 환경에서는 각종 리눅스 기반의 OS에Docker 컨테이너나 K8s와 같은 오케스트레이션 도구를활용하여 각종 App들의 Runtime 환경을구성한 모습이 익숙하지만 정작 나의 개인 PC에는 간단한 테스트

perfaction.tistory.com

 

 

 


MySQL 도커 이미지 다운로드

 

 

리눅스 커멘드를 실행 할 수 있는 환경을 준비한다.

(맥의 경우 터미널, CLI 리눅스는 로컬 프롬프트 활용 등)

 

MySQL 도커 이미지를 pull 명령어를 입력한다.

docker pull mysql

 

아래와 같이 정상적으로 최신 이미지가 pull 되는지 확인한다.

pull 확인

 

이미지를 확인한다.

docker images

 

6주 전에 만들어진 최신 이미지가 로컬에 존재하는 것을 확인한다.

이미지 확인

 

 

 

 


MySQL 도커 이미지 실행하기

 

 

도커 이미지를 실행하기 위해 각종 파라미터를 포함한 커멘드를 아래 내용을 기반으로 작성한다.

docker run --name mysql-container -e MYSQL_ROOT_PASSWORD=<password> -d -p 3306:3306 mysql:latest

 

직접 커스터마이즈가 필요한 영역은 적색으로 표현했다.

 

--name <container_name> : 실행될 컨테이너의 이름을 지정한다. 향후 CLI 레벨에서 식별이 용이한 이름으로 작명한다.

-e MYSQL_ROOT_PASSWORD=<password> : DBMS 내 root 권한의 비밀번호를 설정한다.

-e : 컨테이너 내에서 사용할 환경변수를 설정하기 위한 키워드

-d : detach 모드로 설정 / 컨테이너가 백그라운드 프로세스로 실행된다.

-p <호스트 포트> <컨테이너 포트> : 호스트는 외부에서 이용 시 활용 할 호스트 OS의 포트 정보이고 컨테이너 포트는 컨테이너 내부에서 활용 할 포트 정보다. 포트 포워딩 같은 개념이다.

mysql:latest : 위에서 pull 받은 mysql 이미지에 대한 최신 태그를 의미함

 

 

작성된 커멘드를 실행한다.

docker run --name mysql-240619 -e MYSQL_ROOT_PASSWORD=1q2w3e4r! -d -p 3306:3306 mysql:latest

 

 

커멘드 실행 결과를 확인한다.

반환된 결과는 컨테이너 ID 이다. 

실행 결과 확인

 

 

컨테이너가 정상 실행되었는지 확인한다.

docker ps

 

정의된 이미지와 포트 등이 정상 정의 되었다.

실행 확인

 

 

 

 


컨테이너에 접속하여 DBMS 활용하기

 

 

컨테이너를 bash로 접속하기

docker exec -it mysql-240619 bash

 

 

MySQL에 root로 접속하기

컨테이너 실행 시 입력했던 root 비밀번호를 입력한다.

mysql -u root -p

 

 

기본적으로 존재하는 databases를 확인하여

정상 접속 유무를 판단한다.

show databases;

 

 

라이선스 정책, help 등 아웃풋까지 정확히 보여지는 모습이다.

접속 확인

 

 

 

여기까지 MySQL의 셋업, 설치, 실행이 완료되어 로컬 환경 또는 외부 환경에서

접속이 가능한 상태가 되었다. 이를 테스트 해보기 위한 접속 정보는 아래와 같다.

 

일반적으로 DB 접속에는 많은 툴을 활용하지만 무상 Tool 중에서는

다람쥐라고 부르는 Squirrel SQL 을 개인적으로 추천한다.

 

 

내 로컬환경에서 접속 시 IP : 127.0.0.1

호스트 OS의 port(위의 포트정보 중 왼쪽) : 3306

Username : root

Password : 1q2w3e4r!

 

 

편의상 또는 MySQL에 대한 지식이 충분 할 경우 root를 활용해도 무방하나

단순 테스트용이 아닌 app과 연계 하기 위한 목적이라면

user는 별도로 생성하는 것을 권장한다.