본문 바로가기
코딩/Docker

🐳 Docker Compose로 Redis + Node.js 연동하기

by Leedius 2025. 6. 26.

✅ 목표

  • Redis를 Docker로 실행하고
  • Node.js에서 Redis에 접속해서 데이터를 저장/조회

 


✅ 1. 폴더 구조 만들기

mkdir redis-app
cd redis-app
mkdir src

 

최종 구조:

redis-app/
├── docker-compose.yml
├── package.json
├── Dockerfile
└── src/
    └── index.js

 


✅ 2. Node.js 코드 작성

📄 src/index.js

const redis = require('redis');

const client = redis.createClient({
	url: 'redis://redis:6379'	// 서비스명:포트
});

client.connect();

client.on('connect', () => {
	console.log('Redis 연결 성공');
});

client.get('message', 'Hello Redis!');
cleint.get('message').then((msg) => console.log('저장된 값:', msg));

 

🔍 redis://redis:6379 → 여기서 "redis" 는 나중에 Compose에서 정의할 컨테이너(서비스)명입니다. DNS처럼 작동합니다.

 


✅  3. Node.js 의존성 설치

📄 package.json 생성

npm init -y
npm install redis

 


✅  4. Dockerfile 작성

📄 Dockerfile

FROM node:20-alpine

WORKDIR /app

COPY package*.json ./
RUN npm install

COPY . .

CMD ["node", "src/index.js"]
🔍 Node.js 실행 환경을 만들고 index.js 를 기본 실행 파일로 설정합니다.

 


✅ 5. compose.yml 작성

📄 compose.yml

version: "3.8"

services:
	app:
    	build: .
        depends_on:
        	- redis
     
  	reids:
    	image: redis:alpine

 

🔍 설명:

항목 의미
app Node.js 애플리케이션
build: . 현재 폴더의 Dockerfile로 이미지 생성
depends_on Redis가 먼저 실행되고 나서 app이 실행됨
redis Redis 공식 경량 이미지 사용

 


✅ 6. 실행

docker compose up

 


✅ 7. 실행 결과 확인

터미널에 아래와 같은 메세지가 나오면 성공입니다!

Redis 연결 성공
저장된 값: Hello Redis!

 


✅ 마무리 정리

구성 요소 역할
Redis 서비스 데이터 저장소
Node.js 서비스 Redis에 값 저장 및 조회
docker-compose 두 컨테이너를 하나의 시스템처럼 실행

 


✅ 전체 요약 흐름

브라우저/터미널
    │
    └──▶ [app 컨테이너: Node.js]
              │
              └──▶ [redis 컨테이너: Redis 서버]

댓글