본문 바로가기

Programming/Docker

CentOS7에서 mariadb를 Docker-compose로 띄우는 방법

docker-compose.yml 작성

version: '3.7'

services:
  mariadb:
    container_name: docker-mariadb
    image: mariadb:10.5.5
    init: true
    user: root
    restart: always
    command:
      - --default-authentication-plugin=mysql_native_password
      - --character-set-server=utf8mb4
      - --collation-server=utf8mb4_unicode_ci
      - --lower_case_table_names=1
      - --sql-mode=
    volumes:
      - ./init:/docker-entrypoint-initdb.d
      - ./data:/var/lib/mysql
      - ./config:/etc/mysql/conf.d
    ports:
      - 13306:3306
    env_file: .env
    environment:
      TZ: Asia/Seoul

- version : init 옵션을 주기 위해 3.7을 사용 (3.7에 추가된 옵션)

- init 폴더 내부 sql 파일들은 알파벳 순서로 실행되므로 insert를 create 전에 호출하는 등의 일이 발생하지 않도록 주의.

 

.env 작성

MYSQL_HOST=127.0.0.1
MYSQL_PORT=3306
MYSQL_ROOT_PASSWORD= { Root 암호 }
MYSQL_DATABASE= { 초기 데이터베이스명 }
MYSQL_USER= { 초기 유저 계정 }
MYSQL_PASSWORD= { 초기 유저 암호 }

 

init, data, config 폴더 생성

 

실행

$ docker-compose up -d