Docker를 사용하면 Redis를 격리된 컨테이너 환경에서 쉽게 실행할 수 있습니다.
📍 Redis 설치하고 실행, 종료까지 해보겠습니다.
https://hub.docker.com/_/redis
redis - Official Image | Docker Hub
Quick reference Supported tags and respective Dockerfile links 7.4.0, 7.4, 7, latest, 7.4.0-bookworm, 7.4-bookworm, 7-bookworm, bookworm7.4.0-alpine, 7.4-alpine, 7-alpine, alpine, 7.4.0-alpine3.20, 7.4-alpine3.20, 7-alpine3.20, alpine3.207.2.5, 7.2,
hub.docker.com
Redis 설치
1. Docker가 설치되어 있지 않다면, 먼저 Docker를 설치합니다.
저는 Docker 홈페이지에서 설치하고 실행했지만 계속 "required compatibility check: Incompatible CPU detected..." 에러가 났습니다. 버전을 낮춰서 설치했지만 실패.... 🥲 마음편하게 brew로 설치했습니다.
# --cask: Homebrew에서 --cask 옵션은 GUI(그래픽 사용자 인터페이스)를 가진 애플리케이션이나 macOS의 애플리케이션 패키지를 설치할 때 사용됩니다.
# Docker 엔진, Docker CLI, Docker Compose 등이 포함되어 있어, Docker 컨테이너를 직접 실행하고 관리할 수 있습니다.
$ brew install --cask docker
# docker 버전확인
$ docker --version
# docker-compose 버전확인
$ docker-compose --version
2. 터미널에서 다음 명령어를 실행하여 Redis 컨테이너를 시작합니다
# redis 설치하기
$ docker pull redis:6.2
# 도커 이미지 확인하기
$ docker images
3. 터미널에서 다음 명령어를 실행하여 Redis 컨테이너를 시작합니다
# docker의 이미지를 기반으로, 컨테이너를 생성하는 명령어
$ docker run --rm [IMAGE]:[VERSION]
# --rm : 이 옵션은 컨테이너가 종료될 때 자동으로 컨테이너를 삭제합니다. 이를 통해 불필요한 컨테이너가 남지 않게 합니다.
# -it : 터미널에서 Redis CLI 또는 기타 명령어를 직접 입력하고 실행할 수 있는 환경이 됩니다. 터미널에서 Redis와 상호작용할 수 있게 해주는 옵션입니다.
$ docker run --rm -it redis:6.2
# -d : 컨테이너를 백그라운드 동작하도록 하는 옵션입니다.
# docker run —rm -it -d [IMAGE]:[VERSION]
$ docker run --rm -it -d redis:6.2
4. 실행중인 컨네이너 정보들을 확인 합니다.
# 컨네이터 조회 : 실행중인 컨네이너 정보들을 확인 합니다.
$ docker ps
5. 로컬환경에서 컨테이너로 연결하기 위해서 호스트와 컨테이너 포트 매핑 합니다.
- 도커 컨테이너는 기본적으로 외부 네트워크와 격리된 환경에서 실행됩니다. 이 격리된 환경에서는 컨테이너 내부에서 실행되는 애플리케이션(예: Redis 서버)도 컨테이너 내부에서만 접근 가능합니다.
- 즉, 컨테이너 내의 애플리케이션에 접근하려면 같은 네트워크에 있는 다른 컨테이너를 사용해야 하며, 기본적으로는 호스트 머신에서 직접 접근할 수 없습니다.
- 만약 호스트 머신(즉, 컨테이너를 실행하고 있는 실제 컴퓨터)이나 외부 네트워크에서 컨테이너 내부의 애플리케이션에 접근해야 한다면, 컨테이너의 포트를 호스트의 포트와 연결해야 합니다. 이 과정을 "포트 매핑(port mapping)"이라고 합니다.
- 예를 들어, Redis 서버는 기본적으로 6379 포트를 사용합니다. 이 포트를 호스트 머신의 6379 포트와 연결하면, 호스트 머신에서 마치 Redis 서버가 호스트 자체에서 실행되고 있는 것처럼 접근할 수 있습니다.
- 이 설정 덕분에 호스트 머신에서 localhost:6379로 접속하면, 사실은 컨테이너 내부의 Redis 서버에 접속하게 됩니다. 이렇게 하면 호스트 머신의 애플리케이션들이 도커 컨테이너 내부의 Redis 서버를 마치 로컬에서 실행되는 서버인 것처럼 사용할 수 있습니다.
- 이 설정이 없다면, Redis 서버는 컨테이너 내부에서만 접근이 가능하고, 외부에서는 접근할 수 없게 됩니다.
# -p 6379:6379 옵션은 호스트와 컨테이너 간의 포트를 연결합니다.
# 앞의 6379는 호스트 머신의 포트 번호입니다.
# 뒤의 6379는 컨테이너 내부의 포트 번호입니다.
# docker run —rm -it -d -p [PORT]:[PROT] [IMAGE]:[VERSION]
$ docker run —rm -it -d -p 6379:6379 redis:6.2
- docker desktop 에서도 확인할 수 있습니다.
6. Redis 컨테이너 종료합니다.
# Redis 컨테이너 종료 (ps로 확인했던 컨네이터 ID 를 넣는다)
# docker kill [CONTAINER ID]
$ docker ps
$ docker kill ca7fb131131d
'Study > DB' 카테고리의 다른 글
Redis - Spring Boot Cache 적용하기 (0) | 2024.09.12 |
---|---|
Redis CLI 시작하기: 알아두면 유용한 명령어와 활용 팁 (2) | 2024.09.04 |
Redis (Remote Dictionary Server) 알아보기 (0) | 2024.09.01 |
In-Memory Database (0) | 2024.09.01 |