Docker-Compose yaml파일을 이용하여 MySQL를 Local로 구축하기

사전에 Docker및 Docker-Compose가 설치되어 있어야 합니다.


mysql official docker image link : https://hub.docker.com/_/mysql


docker-compose로 컨테이너를 만들기전 .yaml파일을 작성합니다.

# ./docker-compose.yaml
# services에서는 여러개의 컨테이너를 생성할수 있습니다.
# 참고 링크 : https://hub.docker.com/_/mysql
services:
mysql:
# 컨테이너의 베이스가 될 이미지를 받는다(현재 docker-compose.yaml은 mysql 8.2.0버전을 사용한다.)
image: mysql:8.2.0
volumes:
# mysql의 데이터의 초기화를 방지하기 위해 볼륨으로 저장한다.
- mysql_data:/var/lib/mysql
env_file:
# yaml의 상대경로로 환경변수 파일을 찾는다.
- ./.mysql.env
ports:
# 외부에 포트를 노출시킨다. mysql의 default포트는 3306이고 4500포트로 외부에 노출시킨다.
- "4500:3306"


# 네이밍 볼륨이 있을시 반드시 루트에 한번더 volumes 안에 해당 네이밍 볼륨 이름을 넣는다.
volumes:
# mysql은 mysql_data라는 네이밍 볼륨을 사용하기 때문에 아래에 추가해준다.
mysql_data:


docker-compose.yaml과 같은 경로에 .mysql.env파일 안에는 아래와 같이 유저 이름과 비밀번호를 작성하고 저장합니다.

# MySQL 루트 비밀번호

MYSQL_ROOT_PASSWORD=password

# MySQL 사용자 계정(선택)

MYSQL_USER=alex

# MySQL 사용자 비밀번호(선택)

MYSQL_PASSWORD=password


# MySQL 타임존 셋팅(선택). 설정하지 않을시 UTC시간으로 설정.

TZ=Asia/Seoul




postgres 컨테이너를 docker-compose를 이용하여 생성하는데 detach모드로 실행한다.

$ docker-compose up -d




실행이 되면 위 사진처럼 확인이 가능합니다.


해당 컨테이너의 mysql에 접속하기 위해서는 아래와 같이 진행합니다.

컨테이너를 bash으로 접속한다.

$ docker exec -it rdbms_dockercompose_mysql_1 bash





컨테이너를 bash으로 접속한다.

$ mysql -u alex -p (.mysql.env 파일에 있는 비밀번호를 적용한다.)





만약 해당 컨테이너를 전원이 켜질때마다 자동으로 작동하게 하고 싶다면 docker-compose.yaml파일 안에서 mysql 안쪽에 'restart:always'를 추가하시면 됩니다.


GitHub링크 : https://github.com/Alex-Choi0/RDBMS_DockerCompose/tree/mysql_8.2.0

댓글

이 블로그의 인기 게시물

Lesson 12_1 프로퍼티 노드(Property Node)

DAQ로 전압 측정하기-2

Lesson 12_2 참조를 이용한 프로퍼티노드(Property Node)