일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 공부
- 기록으로 실력을 쌓자
- APM
- Pinpoint
- aws
- Elasticsearch
- AWS EKS
- 티스토리챌린지
- CKA 기출문제
- mysql 튜닝
- 정보처리기사 실기 기출문제
- CloudWatch
- kotlin coroutine
- minikube
- kotlin querydsl
- Kubernetes
- CKA
- Linux
- PETERICA
- AI
- Java
- MySQL
- kotlin
- IntelliJ
- 정보처리기사 실기
- 오블완
- kotlin spring
- Spring
- 정보처리기사실기 기출문제
- 코틀린 코루틴의 정석
- Today
- Total
피터의 개발이야기
[Docker] Docker와 pm2를 함께 사용하는 것이 불리한 이유 본문
ㅁ 관련글
ㅇ [Node.js] PM2를 사용한 Node.js 관리하기(PM2 사용법 정리)
ㅇ [Docker] Docker와 pm2를 함께 사용하는 것이 불리한 이유
ㅇ [Docker] Express 서버를 Docker에서 PM2로 기동하는 방법
ㅇ [Grafana] grafana k6로 테스트 환경 구성(grafana, influxdb, k6)
ㅁ 들어가며
ㅇ node 서비스를 Node process manager인 pm2로 관리하고 있는데, 이를 docker 환경으로 이관 중이다.
ㅇ docker와 pm2가 둘다 프로세스를 관리하는 주체이기에 충돌 문제점에 대해서 조사해 보았다.
ㅁ 기능 중복
ㅇ Docker와 PM2 모두 프로세스 관리자 역할을 한다.
ㅇ 두 도구 모두 로그 전달, 자동 재시작 등의 기능을 제공한다.
ㅁ 컨테이너 관리의 어려움
ㅇ PM2가 컨테이너 내에서 여러 프로세스를 실행하면 Docker의 모니터링이 어려워진다.
ㅇ PM2가 문제 발생 시 자동으로 재시작하면 Docker의 모니터링 시스템에서 이를 감지할 수 없다.
ㅁ 리소스 낭비
ㅇ Docker 컨테이너 내에서 PM2를 사용하면 불필요한 메모리 소비가 증가할 수 있다.
ㅁ 프로세스 관리의 복잡성
ㅇ PM2가 워커 프로세스를 관리하기 때문에 Docker가 개별 프로세스의 문제를 감지하고 관리하기 어려워진다.
ㅁ 대안
ㅇ Docker와 PM2 대신 다음과 같은 방법을 고려할 수 있다.
ㄴ Docker의 restart 옵션을 사용하여 자동 재시작 구현
ㄴ 여러 컨테이너를 실행하여 멀티 프로세싱 구현
ㄴ Nginx를 사용한 로드 밸런싱으로 무중단 배포 구현
ㅁ 마무리
Docker와 PM2를 함께 사용하는 것은 일반적으로 권장되지 않는다. 위의 이유처럼 Docker 환경에서는 PM2 대신 Docker 자체의 기능을 활용하는 것이 더 효율적이고 관리하기 쉬운 방법으로 여겨진다.
ㅁ 함께 보면 좋은 사이트
'DevOps > Docker' 카테고리의 다른 글
[Docker] Uptime Kuma 사용법 (2) | 2024.10.25 |
---|---|
[Docker] Express 서버를 Docker에서 PM2로 기동하는 방법 (1) | 2024.10.17 |
[Docker] 맥북M1에 Oracle Database 설치 (3) | 2024.10.04 |
[Docker] Colima를 이용한 아키텍처 호완성 문제 해결, 멀티 아키텍처 이미지 빌드, docker buildx build --platform (0) | 2024.08.01 |
[Docker] Docker를 터미널에서 실행하는 방법 (0) | 2024.05.18 |