본문 바로가기
DevOps/컨테이너

(Docker Desktop) 윈도우 tcp 서비스 도커 컨테이너로 만들기

by 정보봇따리 2022. 2. 7.
728x90
반응형
SMALL
https://github.com/microsoft/windows-container-tools/tree/master/LogMonitor


윈도우 서비스를 도커 컨테이너로 만들기


-> 윈도우 서비스를 컨테이너화 하는 것이 어려운 이유는, 윈도우의 서비스들은 백단에서 SCM(Service Control Manager) 에 의해 제어됨 / 윈도우 종속적 

-> MS 가 해냄! 기존 IIS 도 처리 못 했는데.. IIS 용으로 ServiceMonitor 제공 -> 기타 서비스도 다룰 수 있음 
https://github.com/Microsoft/IIS.ServiceMonitor


ㅇ윈도우 tcp 서비스를 도커 컨테이너화

 

ㅇDockerfile

FROM mcr.microsoft.com/windows/servercore:1809
SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'Continue'; $verbosePreference='Continue';"]

ADD https://dotnetbinaries.blob.core.windows.net/servicemonitor/2.0.1.3/ServiceMonitor.exe /

RUN Enable-WindowsOptionalFeature -Online -FeatureName SimpleTCP
RUN Start-Service -ServiceName SimpTcp

# Echo
EXPOSE 7

# Discard
EXPOSE 9

# Daytime
EXPOSE 13

# Quote of the Day (QOTD)
EXPOSE 17

# Character Generator (chargen)
EXPOSE 19

ENTRYPOINT C:\ServiceMonitor SimpTcp

 1)서버코어 이미지 활용

 2)파워쉘을 기본쉘로 지정

 3)ServiceMonitor 등록

 4)SimpTcp 서비스 활성화 시키고 서비스 시작

 5)포트 활성화

 6)해당 서비스에 대한 모니터링 등록 

 

ㅇDockerfile 빌드

docker build -t simpletcp:latest .

ㅇ컨테이너 실행

docker run --rm -d -p 7:7 -p 9:9 -p 13:13 -p 17:17 -p 19:19 --name=simpletcp simpletcp:latest .

ㅇ텔넷으로 각 포트가 잘 서비스 되고 있는지 확인

telnet localhost 13

시간 확인

ㅇ도커 데스크톱, docker ps 명령어로도 확인 가능

 

 

다음은 윈도우 서비스 컨테이너의 로깅 모듈 LogMonitor 연동

https://github.com/microsoft/windows-container-tools/tree/master/LogMonitor

 


공부는 데브시스터즈 참고
https://tech.devsisters.com/posts/migrate-nt-service-to-container

728x90
반응형
LIST