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로-사용하기