Mysql Docker로 구성하기

version: '4'
services:
  mysql:
    image: mysql:5.7.42
    platform: linux/amd64
    container_name: mysql-container
    ports:
      - "3308:3306"
    env_file:
      - .env
    command:
      - --character-set-server=utf8mb4
      - --collation-server=utf8mb4_unicode_ci
    volumes:
      - ./init:/docker-entrypoint-initdb.d
      - ./data:/var/lib/mysql

port는 3308로 도커 컨테이너안의 3306과 연결해 주었으며, 로컬에 깔린 mysql 과 포트가 충돌되지 않도록 변경하였습니다.

volume엔 ./init 폴더와 ./data를 폴더를 연결해두었으며 /init엔 create_table.sql 파일을 넣어두면 미리 테이블을 만들어서 생성해줍니다.
/data는 도커 컨테이너가 내려가더라도 저장한 데이터가 삭제되지 않도록 로컬에서 데이터를 관리해주도록 생성하였습니다. .env 파일은 아래와 같이 설정해주며 mysql에 미리 root 비밀번호와 database schema 명을 설정하고 할 수 있다.

MYSQL_HOST=localhost
MYSQL_PORT=3306
MYSQL_ROOT_PASSWORD=root
MYSQL_DATABASE=dbname
MYSQL_USER=sa
MYSQL_PASSWORD=password

해당 소스는 github docker 소스에 올려두었습니다.

댓글남기기