1. docker compose란?
다수의 도커 컨테이너를 실행하기 위한 도구
ex)
노드 앱, 레디스 서버 두 개의 컨테이너가 있고 두 컨테이너의 네트워크 통신이 필요할때에
도커 컴포즈를 사용
2. 실습 소스코드
server.js
const express = require("express");
const redis = require("redis");
const app = express();
const client = redis.createClient({
host: "redis-server",
port: 6379
});
client.set("refreshCount", 0);
app.get('/', (req, res) => {
client.get("refreshCount", (err, refreshCount) => {
res.send(`refreshCount: ${refreshCount}`);
dlient.set("refreshCount", ++Number(refreshCount));
});
});
app.listen(8080);
console.log('server is running');
Dockerfile
FROM node:10
WORKDIR /usr/src/app
COPY ./ ./
RUN npm install
CMD ["node", "server.js"]
docker-compose.yml
version: "3"
services:
redis-server:
image: "redis"
node-app:
build: .
ports:
- "49160:8000"
- version: 컴포즈의 버전
- services: 실행하려는 컨테이너들 정의
- 컨테이너들이 있는 영역을 services라고 함
- image: 컨테이너에서 사용하는 이미지
- build: 컨테이너 빌드 경로
- ports: 로컬, 컨테이너의 포트매핑
3. docker compose 명령어
- docker-compose up: 이미지 없을때 빌드, 컨테이너 시작
- docker-compose up --build: 이미지 있든 없든 빌드, 컨테이너 시작
- docker compose down: 종료
- -d: 앱 백그라운드 실행 detached 모드
- ex) docker-compose up -d
'docker' 카테고리의 다른 글
8. docker FE, BE, mysql, nginx 실습 (0) | 2024.06.13 |
---|---|
7. docker, aws, github action 실습 (0) | 2024.06.09 |
4. node.js로 도커 실행 실습 (0) | 2024.05.06 |
3. 도커 이미지 만들기 (0) | 2024.05.01 |
2. 도커 클라이언트 명령어 (0) | 2024.04.22 |