DevOps/Docker
[Docker] 로컬에 DB 설치하지 않고 Docker로 데이터베이스 사용하기
ryuneng
2025. 1. 25. 00:10
반응형
Docker를 이용하면 로컬에 DB를 설치하지 않고도 데이터베이스를 사용할 수 있다.
Docker로 MySQL, MariaDB 등의 DB 띄우는 법을 알아보자.
- Docker Desktop이 설치되어 있다는 가정 하에 진행한다.
🔗 Docker Desktop 설치 방법 - 예시에서는 MariaDB를 사용했다. MySQL을 사용하고 싶다면, MariaDB 부분을 전부 MySQL로 수정해주면 된다.
0. 생성할 파일 3개 경로 확인
- .env 파일, docker-compose.yml 파일, application.yml 파일 3개만 작성하고
docker-compose 파일을 실행하면 DB를 사용할 수 있다.너무 쉽고 편리하잖아?

1. .env 파일 작성
DB_HOST=localhost
DB_PORT=3306
DB_NAME={DB 이름 입력}
DB_USER={사용자명 입력}
DB_PASSWORD={패스워드 입력}
2. docker-compose.yml 파일 작성
version: "3.9"
services:
mariadb:
image: mariadb:latest
container_name: project-mariadb
ports:
- ${DB_PORT}:${DB_PORT}
restart: always
environment:
MARIADB_DATABASE: ${DB_NAME}
MARIADB_ROOT_PASSWORD: ${DB_PASSWORD}
volumes:
- mariadb-vl:/var/lib/mariadb
volumes:
mariadb-vl:
driver: local
3. application.yml 파일 작성
spring:
application:
name: resource-server
# .env import
config:
import: optional:file:.env[.properties]
datasource:
url: jdbc:mariadb://${DB_HOST}:${DB_PORT}/${DB_NAME}
username: ${DB_USER}
password: ${DB_PASSWORD}
driver-class-name: org.mariadb.jdbc.Driver
jpa:
open-in-view: true
hibernate:
ddl-auto: create # 서버 실행 시 DB의 모든 테이블 삭제 후 재생성
naming:
use-new-id-generator-mappings: false
show-sql: true
properties:
hibernate:
id:
new_generator_mappings: true
format_sql: true
dialect: org.hibernate.dialect.MariaDBDialect
defer-datasource-initialization: true # (2.5~) Hibernate 초기화 이후 data.sql 실행
4. docker-compose.yml 파일 실행

5. Docker Desktop 확인
- 해당 Container가 생성된 것을 확인할 수 있다.
6. IntelliJ에서 MariaDB 스키마 생성
- Test Connection 완료 후 OK
끝!!
- 이제 Docker로 DB를 마음껏 사용할 수 있다.
+ Ports are not available 오류 발생 시 해결 방법
🔗 https://velog.io/@ryuneng2/Docker-도커-실행-오류-Ports-are-not-available-해결-방법
< 해당 글은 velog에서 이전하며 옮겨온 글로, 가독성이 좋지 않을 수 있는 점 양해 부탁드립니다. >
🔗 velog 버전 보기 : https://velog.io/@ryuneng2/Docker-로컬에-DB-설치하지-않고-Docker로-사용하기