[C# 문법] .NET 콘솔 서비스 - DockerFile, Imgae, Containger 생성하기

소개

  • 안녕하세요. 오늘은 .NET 콘솔 서비스 프로그램을 하나 생성한 후, 해당 서비스를 Docker 컨테이너로 실행하는 방법에 대해서 알려 드리도록 하겠습니다.
  • 개인적으로 Docker를 공부하고 있고, 주 언어가 C#을 이용한 .NET 어플리케이션을 개발하고 있어서 해당 부분을 기록하고자 포스팅 합니다.

요구사항

  • 우선 Docker를 사용하기 위해서는 OS에 따라 다르지만, 저는 Window 11 환경에서 테스트 진행하기 때문에 Window 11 환경에 맞춰 설명 합니다.
  • Docker를 실행하기 위해서는, Docker Desktop를 설치해야 하고 설치가 안되신 분들을 구글에 검색 후 설치를 우선 진행해 주시기 바랍니다.
  • Docker Destkop을 설치 하였다면 이제 .NET 콘솔 서비스를 Visual Studio 2022를 통해 하나 생성 후 해당 내용을 가지고 테스트 진행하겠습니다.

개발 환경

  • OS : Windows 11
  • .NET Version : .NET 6
  • 개발 도구 : Visual Studio 2022

1. 작업자 서비스 프로젝트 생성하기

  • 저는 현재 Visual Studio 2022와 .NET6 환경에서 작업하고 있다는점 참고해 주세요.
  • 제일 먼저, Visual Studio 2022를 실행하고, 작업자 서비스 프로젝트 하나를 생성합니다.


2. 프로젝트 우클릭 -> 추가 -> Docker 지원 선택

  • 앞서 생성한 작업자 서비스 프로젝트에 마우스를 갖다 놓습니다.
  • 다음으로 프로젝트 우 클릭 -> 추가 -> Docker 지원 메뉴를 선택합니다.


3. Docker File 옵션 선택

  • 다음으로 Docker File 옵션이 나옵니다.
  • 옵션은 크게 Linux, Window 2개 옵션이 있고, 현재 내 OS 환경이 Windows Server 가 아닌 일반 Windows 혹은 Linux 유저라면 Linux 선택합니다.
  • 저도 Windows 11 이기 때문에, Linux 옵션을 선택하였습니다.


4. 생성된 Dockerfile 확인

  • 그럼 자동으로 Dockerfile이 프로젝트에 생성된 것을 확인할 수 있습니다.
  • 내용은 다음과 같습니다.
  • Dockerfile 관련한 자세한 내용은 추후에 다시 포스팅 하겠습니다.

#See https://aka.ms/containerfastmode to understand how Visual Studio uses this Dockerfile to build your images for faster debugging.

FROM mcr.microsoft.com/dotnet/runtime:6.0 AS base
WORKDIR /app

FROM mcr.microsoft.com/dotnet/sdk:6.0 AS build
WORKDIR /src
COPY ["DockerContainer/DockerContainer.csproj", "DockerContainer/"]
RUN dotnet restore "DockerContainer/DockerContainer.csproj"
COPY . .
WORKDIR "/src/DockerContainer"
RUN dotnet build "DockerContainer.csproj" -c Release -o /app/build

FROM build AS publish
RUN dotnet publish "DockerContainer.csproj" -c Release -o /app/publish

FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "DockerContainer.dll"]

5. 프로젝트 빌드

  • 이제 프로젝트 빌드를 하게 되면, 자동으로 Dockerfile 실행 -> 이미지 생성 -> 컨테이너 생성이 됩니다.
  • 실제로 Docker 에서 컨테이너가 정상적으로 실행 되었는지 확인하려면, cmd 혹은 Powershell 을 통해 아래와 같은 명령어를 입력합니다.
docker ps -a or docker ps
  • 확인 결과, 정상적으로 Docker Container가 실행되어 동작하는 것을 확인할 수 있습니다.

728x90

이 글을 공유하기

댓글

Designed by JB FACTORY