개요
Docker-Compose로 간단하게 MySQL 테스트 환경을 구성해보도록 하겠습니다. 사전에 Docker 및 Docker-Compose에 대한 이해가 필요합니다.
테스트 환경
- Centos7
- Docker 20.10.14
- Docker-compose 1.29.2
구성
docker 구성을 위한 디렉토리를 생성합니다.
$ mkdir mysql_test
$ cd mysql_test
컨테이너 내의 파일을 동기화할 디렉토리를 mysql_test 하위에만들어 줍니다.
$ mkdir db
-- my.cnf 파일 관리를 위한 디렉토리
$ mkdir db/conf.d
-- mysql Data를 저장할 디렉토리
$ mkdir db/data
docker-compose.yml
mysql_test 디렉토리 하위에 docker-compose.yml 파일을 생성해줍니다.
version: "3"
services:
master-server:
image: mysql:8.0.23
container_name: mysql-master
restart: always
ports:
- 10005:3306
volumes:
- ./db/conf.d:/etc/mysql/conf.d
- ./db/data:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=1234
- TZ=Asia/Seoul
ports
: 기본값은 3306이며 해당 테스트에서는 10005 번 포트를 사용하겠습니다
volumes
- ./db/conf.d:/etc/mysql/conf.d : my.cnf 파일을 컨테이너에 마운트
my.cnf 파일 구성이 필요할 경우 db/conf.d 디렉토리 하위에 생성하면됩니다.
- ./db/data:/var/lib/mysql : 컨테이너 내 데이터 파일을 로컬로 동기화
environment
- MYSQL_ROOT_PASSWORD : root 패스워드 지정
- TZ : Time Zone 설정
Docker 컨테이너 실행
$ docker-compose up -d
MySQL 서버 접속
$ docker exec -it mysql-test bash
이후 root 로 로그인합니다.
$ mysql -u root -p
참고
https://int-i.github.io/sql/2020-12-31/mysql-docker-compose/
https://www.notion.so/MySQL-e22849deed064491bd0a805d9ba4ba5a#b9740a025ab74bd6b7dd70645fe81d25
https://docs.docker.com/compose/compose-file/compose-file-v3/