반응형
1. 들어가며
이전 포스트에서 도커로 MySQL을 띄우는 방법에 대해 알아보았다.
패키 프로젝트에서는 메인을 MySQL로 사용하고, Refresh 토큰 관리나 캐싱 등에 Redis를 사용할 예정이다.
참고로 명령어를 통해 Redis를 띄우는 방법은 아래와 같다.
# 터미널 1
# 1. image pull
docker image pull redis
# 2. redis 실행
docker run -p 6379:6379 redis
# -------
# 터미널 2
# 3. 컨테이너 ID를 통해 컨테이너 접속
docker exec -it 8daa7441a5f9 /bin/bash
# 4. redis 접속
/data# redis-cli
# 5. 버전 확인
127.0.0.1:6379> info
MySQL 컨테이너 하나만 사용한다면 명령어로 호다닥 쳐서 컨테이너를 실행할텐데 Redis까지 있을 때에는 일일이 명령어로 치기 귀찮을 수 있다.
Docker Compose를 사용해서 여러 컨테이너를 한번에 띄우는 방법을 알아보자.
3. Docker Compose 스크립트 파일 작성
version: '3'
services:
mysql-docker:
image: mysql:latest
environment:
MYSQL_DATABASE: 'packy'
MYSQL_ROOT_PASSWORD: '1234'
TZ: Asia/Seoul
container_name: 'packy-mysql'
ports:
- '3306:3306'
volumes:
- /Users/leeeeeyeon/data/db-docker/data/mysql:/var/lib/mysql
redis-docker:
image: redis:latest
container_name: 'packy-redis'
command: redis-server --port 6379
ports:
- '6379:6379'
volumes:
- /Users/leeeeeyeon/data/db-docker/data/redis:/data
4. 도커 컴포즈 실행
'docker-compose -f (컴포즈 파일명).yml up -d'로 컨테이너들을 실행한다.
- -f 옵션: 설정 파일을 사용
- up 명령어: 컴포즈에 정의되어 있는 모든 서비스 컨테이너를 생성 및 실행
- -d 옵션: 백그라운드에서 실행
# 컴포즈를 실행한다
docker-compose -f docker-compose.yml up -d
만약 컨테이너가 실행되지 않는 것 같으면 logs 명령어를 통해 로그를 확인해보자.
그리고 나의 경우 작업을 마치고 다시 시작할 때, up을 하니까 컨테이너가 이미 존재한다고 떠서 컨테이너를 일일이 지우고 다시 up을 하였다. 이런 일이 없도록 작업이 끝난 뒤 down도 해주고 마무리하자.
# 컨테이너가 제대로 실행되지 않는 것 같으면 로그를 살펴보자
docker-compose -f docker-compose.yml logs
# 작업이 끝난 뒤 컴포즈에서 정의된 모든 서비스를 중지하고 관련된 리소스를 제거한다
# '-v' 옵션을 사용하면 볼륨도 함께 제거된다
docker-compose -f docker-compose.yml down -v
Reference
반응형