Docker-Compose yaml파일을 이용하여 Redis를 Local로 구축하기
사전에 Docker및 Docker-Compose가 설치되어 있어야 합니다.
mysql official docker image link : https://hub.docker.com/_/redis
docker-compose로 컨테이너를 만들기전 .yaml파일을 작성합니다.
# 참고 링크 : https://hub.docker.com/_/redis
services:
redis:
# 컨테이너의 베이스가 될 이미지를 받는다(현재 docker-compose.yaml은 mysql 8.2.0버전을 사용한다.)
image: redis:7.2.3
volumes:
# redis의 데이터의 초기화를 방지하기 위해 볼륨으로 저장한다.
- redis_data:/data
#- ${REDIS_DEFAULT_CONFIG_FILE}:/usr/local/etc/redis/redis.conf # redis의 config파일. {REDIS_DEFAULT_CONFIG_FILE}에서 직접 수정 가능
# command: redis-server /usr/local/etc/redis/redis.conf # redis.conf파일을 사용시 명령을 내린다.
env_file:
# yaml의 상대경로로 환경변수 파일을 찾는다.
- .redis.env
# 아래처럼 직접 비밀번호를 입력할수 있지만 추천하지 않음
#environment:
# - REDIS_PASSWORD=safePassword!
command:
- /bin/sh
- -c
# - Double dollars, so that the variable is not expanded by Docker Compose
# - Surround by quotes, so that the shell does not split the password
# - The ${variable:?message} syntax causes shell to exit with a non-zero
# code and print a message, when the variable is not set or empty
- redis-server --requirepass "$${REDIS_PWD}"
ports:
# 외부에 포트를 노출시킨다. redis의 default포트는 6379이고 6380포트로 외부에 노출시킨다.
- "6380:6379"
logging:
driver: "json-file"
options:
max-file: "3"
max-size: "10m"
# 네이밍 볼륨이 있을시 반드시 루트에 한번더 volumes 안에 해당 네이밍 볼륨 이름을 넣는다.
volumes:
# redis은 redis_data라는 네이밍 볼륨을 사용하기 때문에 아래에 추가해준다.
redis_data:
docker-compose.yaml과 같은 경로에 .redis.env파일 안에는 아래와 같이 비밀번호를 작성하고 저장합니다.
REDIS_PWD=bestpassword!
redis 컨테이너를 docker-compose를 이용하여 생성하는데 detach모드로 실행한다.
$ docker-compose up -d
실행이 되면 위 사진처럼 확인이 가능합니다.
해당 컨테이너의 redis에 접속하기 위해서는 아래와 같이 진행합니다.
-
컨테이너를 bash으로 접속한다.
$ docker exec -it rdbms_dockercompose_redis_1 bash
컨테이너를 bash으로 접속한다.
$ redis-cli
만약 해당 컨테이너를 전원이 켜질때마다 자동으로 작동하게 하고 싶다면 docker-compose.yaml파일 안에서 redis 안쪽에 'restart:always'를 추가하시면 됩니다.
GitHub링크 : https://github.com/Alex-Choi0/RDBMS_DockerCompose/tree/redis_7.2.3
댓글
댓글 쓰기