본문 바로가기
개발 이야기/NoSQL

Redis를 Docker Compose 로 띄우기

by 농개 2021. 1. 22.
반응형

해당 글에서는 NoSQL에 속하며, 인기있는 오픈소스 인메모리 DBRedisdocker로 띄우는 방법을 정리합니다.

 

01. docker image 다운로드

>> docker pull redis:alpine

위와 같이 pull 커맨드를 이용해서 redis:alpine 이미지를 다운로드 받습니다.

alpine 은 태그를 의미하며 redis의 버전 등의 값을 줄수 있습니다. (생략하면 latest 를 받음)

alpine 태그의 특징은 이미지를 경량화 시켜서 용량이 적습니다. 

이미지 용량 차이를 확인해보니 아래와 같네요.

>> docker images
REPOSITORY   TAG       IMAGE ID       CREATED        SIZE
redis        alpine    c678242f9116   5 weeks ago    31.6MB
redis        6.0.6     1319b1eaa0b7   5 months ago   104MB

 

 

 

02. docker로 실행

>> docker run --name redis_boot -d -p 6379:6379 reids:alpine

위와 같이 run 커맨드를 통해 docker container를 띄우면 됩니다.

  • --name : container명을 지정합니다.
  • -d, --detach : 백그라운드로 실행합니다.
  • -p : host의 port와 container port 설정합니다.

그리고 마지막에 이미지명:태그명 해주면 됩니다.

 

근데 매번 저 명령어를 쳐주기 귀찮을겁니다.

docker-compose 를 사용하면 yml 파일로 컨테이너를 띄울 수 있습니다.

 

 

03. yml 파일 작성

# redis-server.yml
version: '3.7'
services:
    redis:
      image: redis:alpine
      command: redis-server --port 6379
      container_name: redis_boot
      hostname: redis_boot
      labels:
        - "name=redis"
        - "mode=standalone"
      ports:
        - 6379:6379

위와 같이 작성해줍니다.

yml 파일 작성할 때는 띄어쓰기 잘하셔야됩니다.

key: value 이런식으로...

 

 

04. docker-compose up (시작)

>> docker-compose -f ./redis_server.yml up -d

위와 같이 up 커맨드를 이용해서 띄울수 있습니다.

  • -d  옵션을 줘서 백그라운드 실행했구요.
  • -f 는 yml 파일 경로를 지정하여 해당 yml파일을 실행하도록 합니다.(default는 docker-compose.yml 이고, 이 경우 따로 지정할 필요가 없습니다.
>> docker ps
CONTAINER ID   IMAGE          COMMAND                  CREATED         STATUS         PORTS                    NAMES
1b7d82a59165   redis:alpine   "docker-entrypoint.s…"   3 seconds ago   Up 2 seconds   0.0.0.0:6379->6379/tcp   redis_boot

잘 뜨네요.

 

 

05. redis-cli 사용

컨테이너에 접속하여

redis 커맨드 라인 명령어 도구인 redis-cli 를 이용해 봅시다.

>> docker exec -it redis_boot redis-cli
127.0.0.1:6379> PING
PONG
127.0.0.1:6379> keys *
(empty array)
127.0.0.1:6379> SET abc 123
OK
127.0.0.1:6379> GET abc
"123"
127.0.0.1:6379> 

exec 커맨드를 사용해 docker container 내부에 명령어를 실행 해볼수 있습니다.

  • 현재 터미널에서 상호작용하기 위해 -i, -t 옵션을 줬습니다. 
  • 컨테이너명인 redis_boot 인자로 주고.
  • 마지막으로 redis-cli 커맨드를 줍니다.
  • redis 명령어 테스트 해보니 잘되네요.

 

 

06. docker-compose down (종료)

>> docker-compose -f ./redis_server.yml down 
Stopping redis_boot ... done
Removing redis_boot ... done
Removing network redis_server_default

종료는 down 커맨드를 사용하면 됩니다.

 

반응형