이전 포스트에서 JWT 토큰이 어떻게 활용될 것인지랑 쿠키에 저장할 것 인지 아니면 localStroage에 저장할 것 인지를 알아보았다.
이제 Docker에다가 Redis서버를 띄어볼려고 한다.하나의 컨테이너 안에서 Redis만 실행되는 것으로 한다.
도커(Docker)
컨테이너를 사용해 응용 프로그램을 더 쉽게 만들고 배포, 실행할 수 있도록 설계된 도구
- 컨테이너 기반의 오픈소스 가상화 플랫폼
- 리눅스나 윈도우 기반의 애플리케이션 모두 사용할 수 있으며 인프라에 관계없이 항상 동일하게 실행
컨테이너를 사용하여 각각의 프로그램을분리된 환경에서 실행 및 관리할 수 있는 툴

윈도우 환경을 예시로 들어보면 하나의 컴퓨터에 여러 사용자로 나눠서 사용할 수 있도록 구성되어있다.예를 들면 Park,Kim 이렇게 각각 다른 사용자로 로그인 할 수 있도록 구성되어 있고 Park에서 카카오톡을 설치 하면 Park으로 로그인 된 환경에서는 카카오톡이 존재하지만 Kim으로 로그인 된 환경에서는 카카오가 존재하지 않는다.그 말은 각 사용자의 환경에 들어가보면 독립적으로 구성 되어 있어서 필요하 프로그램을 각 사용자 환경에 따로따로 설치해주어야 한다는 것이다.
컨테이너도 이와 비슷한 개념이다.하나의 컴퓨터 환경에 독립적인 컴퓨터 환경을 구성하여,각 환경에 프로그램을 별도로 설치할 수 있게 만든 개념이다.
하나의 컴퓨터 환경내에서 여러개의 미니 컴퓨터 환경을 구성할 수 있는 형태이다.여기서 얘기하는미니 컴퓨터를 보고 도커(Docker)에서는컨테이너라고 부른다.그리고 미니 컴퓨터를 구성하고 있는 컴퓨터를 호스트 컴퓨터라고 부른다
쉽게 생각하면 닌텐도 칩을 생각하면 된다.기기만 있으면 여러가지 칩을 넣게되면 다양한 게임을 즐길 수 있다.도커에서 닌텐도 칩과 같은 역할을 하는 개념이 이미지(Image)이다.
예를 들면 MariaDB 서버를 이미지로 만들었다면,이 이미지를 도커로 실행시키는 순간 MariaDB 서버가 컨테이너(Container) 환경에서 실행된다.일일히 MariaDB를 설치할 필요없이 MariaDB를 사용할 수 있게 된다.
일단 도커는 공식 홈페이지에서 설치 할 수 있고 자신의 OS에 알맞게 설치하자
컨테이너를 구축하기 위해서는 실행시킬 이미지가 필요하다.우리는 Redis가 필요하니 Redis의 이미지를 설치하자
docker pull redis
redis를 다운받고
docker images
명령어를 입력하면

Redis가 잘 다운로드 된 것을 확인할 수 있다.
컨테이너 실행에 필요한 이미지를 다운로드 받았으니, 이제 이를 이용한 컨테이너를 구축(생성)해볼 것이다.
docker run --name test-redis -p 6379:6379 -d redis
docker run 뒤에 붙은 --name은 컨테이너의 이름을 의미하며 -p는 포트포워딩을 의미한다.앞의 숫자 6379는 호스트(docker가 실행 중인 PC)의 포트,뒤의 숫자 6379는 컨테이너 포트를 의미한다.외부에서 6379포트로 접근을 하게되면,이 접근은 컨테이너의 6379포트로 포트 포워딩 된다.-d는 컨테이너를 데몬으로 실행하기 위한 것(쉽게 풀이하면 컨테이너를 백그라운드에 실행)이다.마지막의 redis는 실행시킬 어플리케이션 이름이다.
docker ps

처음 컨테이너를 생성하면 컨테이너는 Running 상태다. 이를 끄고, 켜고, 재실행하는 명령어는 다음과 같다
docker stop {container_name}
docker start {container_name}
docker restart {container_name}
docker exec -it test-redis /bin/bash

redis-cli

keys *

get 17
FLUSHALL

다음번에는 RefreshToken이 어떻게 스프링부트에서 Redis로 저장되는지 작성 해야겠다