20240412

귤금·2024년 4월 12일

Node.js 4기 TIL

목록 보기
76/86

프로젝트를 위해 Docker를 설치하고, docker image로 레디스를 로컬에서 구동해보기로 하고 세팅했다.

참고한 블로그

[Redis] local에서 Redis 사용하기 / Docker 사용하여 Redis server 접속

 [[Redis] local에서 Redis 사용하기 / Docker 사용하여 Redis server 접속

Docker 이용하여 Redis server 접속

velog.io](https://velog.io/@yoojkim/Redis-local%EC%97%90%EC%84%9C-Redis-%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0-Docker-%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC-Redis-server-%EC%A0%91%EC%86%8D)

Redis 설정

1. Redis Image 받아오기

docker image pull redis

2. Redis network 생성

redis-cli랑 redis-server 사이에 network 생성

docker network create redis-network

# 생성된 네트워크 확인
docker network ls

3. Redis 서버 실행

docker run --name local-redis -p 6379:6379 --network redis-network -v redis_temp:/data -d redis:latest redis-server --appendonly yes
  1. local-radis 라는 이름으로 로컬-docker간 6379 포트 개방
    • docker run --name local-redis -p 6379:6379
    • -p 옵션은 호스트와 컨테이너 간의 포트 매핑을 설정.
      • 컨테이너 포트를 외부에 노출시키기 위해 사용됨.
      • 구체적인 형식 :  -p <호스트_포트>:<컨테이너_포트>
      • 예시에서 -p 6379:6379는 호스트의 6379번 포트와 컨테이너의 6379번 포트를 연결하고, 이 설정으로 인해 외부에서 호스트의 6379번 포트로 들어오는 트래픽이 컨테이너의 6379번 포트로 전달된다. Redis 서버는 기본적으로 6379번 포트에서 수신 대기하므로, 이 포트 매핑을 통해 호스트 머신을 통해 Redis 서비스에 접근할 수 있게 됨.
  2. redis-network라는 이름의 네트워크를 사용
    • --network redis-network
  3. 로컬의 redis_temp와 docker의 /data 연결
    •  **-v redis_temp:/data**
    • -v 옵션은 호스트와 컨테이너 간의 데이터 볼륨을 연결. 주로 데이터의 영구성을 관리하기 위해 사용된다.
      • 형식 :  -v <호스트_디렉토리>:<컨테이너_디렉토리>
      • 예시에서 redis_temp:/data는 호스트의 redis_temp 볼륨을 컨테이너의 /data 디렉토리에 마운트한다. Redis는 --appendonly yes 옵션으로 실행되면 데이터 변경 사항을 appendonly.aof 파일에 기록함. 이 파일을 /data 디렉토리에 저장함으로써 컨테이너가 삭제되거나 재시작 되어도 데이터가 유지되는 것.
  4. redis:latest image를 사용하여 백그라운드에서 서버 실행
    • --d redis:latest redis-server --appendonly yes
    • -d 옵션은 컨테이너를 분리 모드(detached mode)로 실행하라는 명령
      • 분리 모드에서는 컨테이너가 백그라운드에서 실행되며, 터미널이나 명령어 프롬프트가 컨테이너 실행에 바인딩되지 d않는다. 이 옵션을 사용하면 컨테이너 로그를 직접 보려면 docker logs 명령어를 사용해야 함.

Redis-cli 접속

현재 실행중인 Redis(Redis 컨테이너)에 Redis-cli로 접속

docker run -it --network redis-network --rm redis:latest redis-cli -h local-redis

-h 뒤에 붙은 컨테이너 명(local-redis)로 redis-cli를 실행하여 redis server에 접속.
--rm : 실행 시에, 컨테이너 id가 존재하면 삭제 후 run

0개의 댓글