이전 포스트에서 소개했듯이, Docker
는 격리성과 일관성을 유지하면서 애플리케이션을 실행할 수 있도록 도와주는 도구입니다.
이번 포스트에서는 기존 MySQL 대신 MariaDB를 이용해 애플리케이션과 연결하는 방법을 다룹니다.
저는 MacBook 환경에서 진행하였습니다.
Docker 데몬 실행
먼저, Docker 데몬을 실행합니다.
Docker 데몬이 실행되지 않으면 이미지 다운로드가 불가능하므로 반드시 실행 상태를 확인해주세요.
Docker MariaDB 다운로드하기
터미널(iTerm)에서 아래 명령어를 입력하여 MariaDB 이미지를 다운로드합니다.
```shell
docker pull mariadb
```
MariaDB 이미지가 정상적으로 다운로드되었는지 확인하세요.
만약 문제가 발생한다면 Docker 데몬이 실행 중인지 다시 확인해주세요.
Docker MariaDB image 실행하기
```shell
docker run --name mariadb-container \
-e MYSQL_ROOT_PASSWORD=11111111 \
-p 3307:3306 \
mariadb:latest
```
**옵션**
- run: 컨테이너 실행행
- name : 컨테이너 이름 설정 (mariadb-container)
- e: 환경 변수 설정 (MySQL 루트 비밀번호 설정)
- p: 호스트 포트(3307) ↔ 컨테이너 포트(3306) 매핑
- latest: 최신 버전의 MariaDB 실행
💡 왜 포트를 3307로 설정했나요?
기존에 3306 포트를 사용하는 MySQL 서버가 실행 중이라 충돌 방지를 위해 변경했습니다.
docker ps
출력 결과는 아래와 비슷해야 합니다.
docker exec -it maraidb-container maraidb -u root -p
옵션
비밀번호를 입력하면 정상적으로 MariaDB에 접속됩니다.
MySQL WorkBench를 사용하여 MariaDB에 연결할 수도 있습니다.
기존 스프링 프로젝트에서 application.yml 파일에 아래와 같이 설정
username과 password는 환경변수 사용을 추천합니다.
WorkBanch에서 엔터티가 생성되었는지 확인
도커 컨테이너 내에서 MariaDB Table 확인
🛠️ Docker를 활용한 MariaDB 장점
✅ 기존 환경 변수 충돌을 방지하면서 격리된 MariaDB 환경을 구축할 수 있음
✅ OS에 직접 데이터베이스를 설치할 필요 없이 이미지만 다운로드하면 바로 사용 가능
✅ 필요 없을 때는 컨테이너와 이미지를 삭제하여 간편하게 환경 정리 가능
[참고]