DEV/Container

[Docker] docker compose - MariaDB 작성 방법

l-eazzy 2023. 3. 27. 18:48

 

개인 프로젝트 겸,

로컬에서 테스트 할 겸 DB를 docker 환경으로 세팅하도록 docker-compose 파일을 작성해서 관리해보기로 하였다.

 

아래 스크립트는 yaml 파일로 작성된 예시.

version: '3.8'

services:
  # MariaDB 설정
  mariadb:
    # Docker Repository 에서 가져오고자 하는 이미지
    image: mariadb:latest
    # 재시작 정책 옵션
    restart: always
    # 환경 변수
    environment:
      MYSQL_ROOT_PASSWORD: your_root_password
      MYSQL_DATABASE: your_database_name
      MYSQL_USER: your_database_user
      MYSQL_PASSWORD: your_database_password
    # 포트 설정
    ports:
      - "3306:3306"
    # 볼륨 설정
    volumes:
      - ./data:/var/lib/mysql
    # 컨테이너 이름 지정
    container_name: my-mariadb
    # 네트워크 설정
    networks:
      - mynetwork

# 볼륨 설정
volumes:
  mariadb-data:

# 프로젝트 이름 설정
name: "PROJECT_NAME"

 

docker-compose 파일을 실행하려면, "docker-compose.yaml" 저장한 다음 해당 파일이 있는 디렉토리에서 docker-compose up -d 명령어를 실행하면 된다. -d 플래그를 사용하여 컨테이너를 분리 모드에서 실행하면 터미널 창을 계속 사용할 있다.

 

[volumes] 에서 [- ./data:/var/lib/mysql] 경로는 [현재 경로 : 컨테이너] 내 경로 를 나타낸다

 

[environment] 에 데이터베이스 및 계정 관련 정보를 세팅 해두면 빌드 시에, 내용이 적용되어 작동한다. (위 파일의 경우 데이터베이스, 계정 정보가 세팅 됨)

 

[network] 는 docker 공식문서에서 다중 컨테이너 네트워크 세팅 부분부터 나오는 기능이다. NAT 이나 Bridge 같은 네트워크 설정 등이 가능한데, 로컬에서 간단하게 필요 환경만 세팅할 생각이라 예시로만 간단히 넣고 자세한 내용은 추후 다루겠다.

 

 

PROJECT_NAME 은 해당 compose 파일에 정의된 앱들을 묶는 이름과 같은 것이다.

[name: "PROJECT_NAME"] 미 설정 시, docker-compose.yaml 파일의 상위 디렉토리 명칭으로 자동 설정 되어 들어가게 된다.

(ex. local 디렉토리 안에 docker-compose.yaml 파일이 저장되어있고 ~/local 경로에서 docker-compose up 실행 시, local로 프로젝트 이름이 지정됨)

 

 

추가적인 옵션은 공홈 참고!

 

Docker Compose overview

 

docs.docker.com

 

 

 

728x90