성장에 목마른 코린이

[DB] Docker 로 MySQL/MariaDB 세팅 본문

데이터베이스

[DB] Docker 로 MySQL/MariaDB 세팅

성장하는 코린이 2022. 11. 30. 08:36
728x90

Docker Compose로 MySQL/MariaDB 세팅

Docker 설치 및 설정 파일 세팅

Docker와 Docker Compose 설치

맥의 경우, Docker만 설치하면 Docker Compose가 포함되어 있기에 추가로 설치해줄 필요가 없습니다.

프로젝트 내에 docker-compose.yml 생성 및 내용 추가

version: "3.7"
services:
  test:
    image: mariadb:10.4
    container_name: test
    env_file: .env
    environment:
      TZ: Asia/Seoul
    networks:
      - database
    ports:
      - 3306:3306
    restart: always
    volumes:
      - ./db/conf.d:/etc/mysql/conf.d
      - ./db/data:/var/lib/mysql
networks:
  database:
  • image: mariadb:10는 MariaDB 10 이미지를 사용한다는 의미입니다.
  • ports: DB의 3306 포트를 열어준다는 의미입니다.
  • volumes: Docker 컨테이너의 파일을 사용자 시스템의 파일에 연결한다는 의미입니다.
  • TZ: DB의 시간대를 설정하는 용도입니다.
  • volumes: 컨테이너가 삭제될 시 데이터도 날아갈 수 있기때문에, 저장소는 반드시 외부로 마운트를 해줘야 합니다.
    • /etc/mysql/conf.d는 MySQL/MariaDB의 설정 파일이 위치하는 경로입니다.
    • /var/lib/mysql은 DB의 데이터가 파일 형태로 저장되는 공간입니다

.env 파일 생성 및 내용 추가

MYSQL_HOST=localhost
MYSQL_PORT=3306
MYSQL_ROOT_PASSWORD=password
MYSQL_DATABASE=test
MYSQL_USER=tester
MYSQL_PASSWORD=password

db라는 빈 디렉터리 생성

docker-compose.yml가 위치한 디렉터리에 말그대로 db라는 빈 디렉터리를 생성하면 됩니다.

Docker MySQL/MariaDB 컨테이너 생성 및 실행

Docker에 MySQL/MariaDB 컨테이너 생성

$ docker-compose up

백그라운드에서 실행 시 up 뒤에 옵션 -d를 추가해주면됩니다.

MySQL/MariaDB 컨테이너 bash 쉘 접속

$ docker exec -it test bash

test를 한 이유는 아까 docker-compose.yml 파일에서 컨테이너 이름을 test로 지정해줬기 때문입니다.

MySQL/MariaDB 서버 접속

$ mysql -u root -p
mysql > [.env파일에 있는 패스워드]
Comments