본문 바로가기
Study/DB

Redis - Docker 사용하여 Redis 설치하고 실행하기 (MacOS)

by 코드콩 2024. 9. 3.
728x90
반응형

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, bookworm⁠7.4.0-alpine, 7.4-alpine, 7-alpine, alpine, 7.4.0-alpine3.20, 7.4-alpine3.20, 7-alpine3.20, alpine3.20⁠7.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

 

redis 설치
redis 설치 확인

 

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

redis 컨테이너 시작

 

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

 

redis 호스트와 컨테이너 포트 매핑

  • docker desktop 에서도 확인할 수 있습니다.

docker desktop

6. Redis 컨테이너 종료합니다.

 

 # Redis 컨테이너 종료 (ps로 확인했던 컨네이터 ID 를 넣는다)
 # docker kill [CONTAINER ID]
 
 $ docker ps
 $ docker kill ca7fb131131d

redis 컨테이너 종료

 

728x90
반응형