![[Windows 컨테이너] 3: NT 서비스를 Windows 컨테이너로 마이그레이션하기](https://tech.devsisters.com/opengraph.png)
[Windows 컨테이너] 3: NT 서비스를 Windows 컨테이너로 마이그레이션하기
두줄요약
Windows NT 서비스를 ServiceMonitor로 컨테이너 생명 주기에 연결하는 방법을 설명했습니다. LogMonitor로 이벤트·ETW 로그를 stdout으로 수집하는 구성을 소개합니다.
문제 상황
- SCM이 제어하는 NT 서비스와 컨테이너 런타임 생명 주기 간 불일치
- Windows 서비스의 stdout 미출력으로 컨테이너 동작 상태 확인 곤란
해결 방법
- ServiceMonitor를 ENTRYPOINT로 지정해 SimpTcp 서비스 실행 상태와 컨테이너 생명 주기 연결
- Windows Server Core 기반 이미지에서 SimpleTCP 기능 활성화와 서비스 포트 노출
- LogMonitor로 이벤트 로그·ETW 로그·로그 파일을 가로채 stdout 출력
구조와 흐름
- LogMonitor가 PowerShell과 ServiceMonitor 실행을 감싸 로그 수집 전처리 수행
- LogMonitorConfig.json에서 EventLog 채널과 ETW 공급자·수집 수준 선택
- docker build·run 후 포트 매핑과 telnet 연결로 TCP 서비스 검증
주의할 점
- ServiceMonitor·LogMonitor 조합은 NT 서비스를 콘솔 애플리케이션으로 전환하기 어려운 경우의 대안
- 충분한 투자 여유가 있다면 독립 콘솔 서버 애플리케이션 형태의 리팩터링 우선


