이 글은 최주호님의 Youtube 도커 강의를 통해 학습한 내용을 정리하여 작성합니다.
Docker-Compose 기본
Docker Compose 공식 문서
https://docs.docker.com/compose/gettingstarted/
개요
실습
전체 구조
docker-compose.yml
services:
mysqldb:
image: mysql
restart: always
volumes:
- mysql-compose-volume:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=root1234
- MYSQL_DATABASE=rootdb
ports:
- "3307:3306"
volumes:
mysql-compose-volume:
MySQL 데이터베이스 컨테이너를 설정하는 데 사용된다.
- services: 이 부분은 서비스를 정의하는 섹션이다.
- 여기에서는 mysqldb라는 이름의 서비스를 정의한다.
- mysqldb: 이 섹션은 mysqldb 서비스에 대한 구성을 정의한다.
- image: mysql
: 이 서비스는 "mysql" 이미지를 사용하여 컨테이너를 생성한다. - restart: always
: 컨테이너가 종료되면 항상 다시 시작된다. - volumes: 호스트 시스템의 볼륨과 컨테이너의 경로를 매핑한다.
- 여기서는 mysql-compose-volume이라는 볼륨을 /var/lib/mysql 경로에 매핑한다.
- 이렇게 함으로써 MySQL 데이터를 영구적으로 유지할 수 있다.
- environment: 컨테이너 내에서 사용할 환경 변수를 설정한다.
- 여기서는 MYSQL_ROOT_PASSWORD와 MYSQL_DATABASE를 설정한다.
- MYSQL_ROOT_PASSWORD는 "root1234"로 설정되어 MySQL 루트 사용자의 암호를 지정한다.
- MYSQL_DATABASE는 "rootdb"로 설정되어 새로운 데이터베이스를 생성한다.
- 여기서는 MYSQL_ROOT_PASSWORD와 MYSQL_DATABASE를 설정한다.
- ports: 컨테이너의 포트와 호스트 시스템의 포트를 매핑한다.
- 여기서는 호스트의 3307 포트를 컨테이너의 3306 포트와 연결한다.
- 이렇게 함으로써 호스트 시스템에서 MySQL에 접근할 수 있다.
- image: mysql
- volumes: 이 섹션은 볼륨을 정의한다.
- mysql-compose-volume이라는 이름의 볼륨을 생성한다.
- mysqldb: 이 섹션은 mysqldb 서비스에 대한 구성을 정의한다.
- 여기에서는 mysqldb라는 이름의 서비스를 정의한다.
실행
docker-compose up -d
결과
물론 이렇게 이름을 가지는 볼륨을 생성하지 않고 호스트의 폴더에 저장할 수도 있다.
호스트 폴더에 볼륨 설정
이렇게 설정하면 data 폴더가 활성화 된다.
'Docker' 카테고리의 다른 글
Docker Compose - React & Spring & MySQL (0) | 2023.08.14 |
---|---|
Docker Compose - Spring & MySQL (0) | 2023.06.26 |
docker file - MySQL 환경변수와 볼륨연결 (0) | 2023.06.25 |
docker file - nginx 게이트웨이 사용하기 (0) | 2023.06.25 |
docker file - nginx를 로비 서버로 활용하기 (0) | 2023.06.25 |