다음을 통해 공유


Visual Studio 컨테이너 도구

Docker 또는 Podman 컨테이너를 사용하여 개발하기 위해 Visual Studio에 포함된 도구는 컨테이너화된 애플리케이션의 빌드, 디버깅 및 배포를 크게 간소화합니다. 단일 프로젝트에 대한 컨테이너로 작업하거나 Docker Compose에서 컨테이너 오케스트레이션을 사용할 수 있습니다.

Docker 컨테이너를 사용하여 개발하기 위해 Visual Studio에 포함된 도구는 컨테이너화된 애플리케이션의 빌드, 디버깅 및 배포를 크게 간소화합니다. 단일 프로젝트에 대한 컨테이너로 작업하거나 Docker Compose 또는 Service Fabric 에서 컨테이너 오케스트레이션을 사용하여 컨테이너의 여러 서비스를 사용할 수 있습니다.

필수 구성 요소

Visual Studio의 Docker 지원

Docker 지원은 ASP.NET 프로젝트, ASP.NET Core 프로젝트 및 .NET Core 및 .NET Framework 콘솔 프로젝트에 사용할 수 있습니다.

Visual Studio의 Docker에 대한 지원은 고객의 요구에 따라 여러 릴리스에서 변경되었습니다. 프로젝트에 추가할 수 있는 두 가지 수준의 Docker 지원이 있으며 지원되는 옵션은 프로젝트 유형과 Visual Studio 버전에 따라 다릅니다. 일부 지원되는 프로젝트 형식에서는 오케스트레이션을 사용하지 않고 단일 프로젝트에 대한 컨테이너를 원하는 경우 Docker 지원을 추가하여 이 작업을 수행할 수 있습니다. 다음 수준은 선택한 특정 오케스트레이터에 대한 적절한 지원 파일을 추가하는 컨테이너 오케스트레이션 지원입니다.

Visual Studio 2019를 사용하면 Docker Compose, Kubernetes 및 Service Fabric을 컨테이너 오케스트레이션 서비스로 사용할 수 있습니다.

Visual Studio 2019 버전 16.4 이상에서는 실행 중인 컨테이너를 보거나, 사용 가능한 이미지를 찾아보고, 환경 변수, 로그 및 포트 매핑을 보거나, 파일 시스템을 검사하거나, 디버거를 연결하거나, 컨테이너 환경 내에서 터미널 창을 열 수 있는 컨테이너 창을 사용할 수 있습니다. 참조하세요. 컨테이너 창사용.

필수 구성 요소

Visual Studio의 컨테이너 지원

컨테이너 지원은 ASP.NET Core 프로젝트 및 .NET Core(및 .NET 5 이상) 콘솔 프로젝트에 사용할 수 있습니다. .NET Framework 프로젝트는 현재 버전의 Visual Studio에서 지원되지 않습니다.

오케스트레이션을 사용하지 않고 단일 프로젝트에 대한 컨테이너만 원하는 경우 컨테이너 지원을 추가하여 수행할 수 있습니다. Docker 또는 Podman을 컨테이너 플랫폼으로 선택하고 프로젝트를 변경하지 않고 쉽게 전환할 수 있습니다. 다음 수준은 Docker Compose에 적절한 지원 파일을 추가하는 Container Compose 지원입니다. (Podman Compose는 지원되지 않습니다.)

.NET 7 이상 프로젝트에 컨테이너 지원을 추가하는 경우 컨테이너 지원을 추가하기 위해 선택할 수 있는 두 가지 컨테이너 빌드 형식이 있습니다. Dockerfile을 추가하여 컨테이너 이미지를 빌드하는 방법을 지정하거나 .NET SDK에서 제공하는 기본 제공 컨테이너 지원을 사용하도록 선택할 수 있습니다.

컨테이너 창을 사용하면 실행 중인 컨테이너를 보거나, 사용 가능한 이미지를 찾아보고, 환경 변수, 로그 및 포트 매핑을 보거나, 파일 시스템을 검사하거나, 디버거를 연결하거나, 컨테이너 환경 내에서 터미널 창을 열 수 있습니다. 참조하세요. 컨테이너 창사용.

필수 구성 요소

Visual Studio의 Docker 지원

Docker 지원은 ASP.NET 프로젝트, ASP.NET Core 프로젝트 및 .NET Core 및 .NET Framework 콘솔 프로젝트에 사용할 수 있습니다.

Visual Studio의 Docker에 대한 지원은 고객의 요구에 따라 여러 릴리스에서 변경되었습니다. 프로젝트에 Docker 지원을 추가하는 몇 가지 옵션이 있으며 지원되는 옵션은 프로젝트 유형 및 Visual Studio 버전에 따라 다릅니다. 일부 지원되는 프로젝트 형식에서는 오케스트레이션을 사용하지 않고 단일 프로젝트에 대한 컨테이너를 원하는 경우 Docker 지원을 추가하여 이 작업을 수행할 수 있습니다. 다음 수준은 선택한 특정 오케스트레이터에 대한 적절한 지원 파일을 추가하는 컨테이너 오케스트레이션 지원입니다.

Visual Studio 2022 버전 17.9 이상을 사용하면 .NET 7 이상 프로젝트에 Docker 지원을 추가할 때 Docker 지원을 추가하기 위해 선택할 수 있는 두 가지 컨테이너 빌드 유형이 있습니다. Dockerfile을 추가하여 컨테이너 이미지를 빌드하는 방법을 지정하거나 .NET SDK에서 제공하는 기본 제공 컨테이너 지원을 사용하도록 선택할 수 있습니다.

또한 Visual Studio 2022 이상에서는 컨테이너 오케스트레이션을 선택할 때 Docker Compose 또는 Service Fabric을 컨테이너 오케스트레이션 서비스로 사용할 수 있습니다.

Visual Studio 2022에서는 실행 중인 컨테이너를 보거나, 사용 가능한 이미지를 찾아보고, 환경 변수, 로그 및 포트 매핑을 보거나, 파일 시스템을 검사하거나, 디버거를 연결하거나, 컨테이너 환경 내에서 터미널 창을 열 수 있는 컨테이너 창을 사용할 수 있습니다. 참조하세요. 컨테이너 창사용.

컨테이너 지원을 사용하여 프로젝트를 만들거나 기존 프로젝트에 컨테이너 지원을 추가하려면 컨테이너에 대한 지원 추가를 참조하세요.

Docker 지원을 사용하여 프로젝트를 만들거나 기존 프로젝트에 Docker 지원을 추가하려면 컨테이너에 대한 지원 추가를 참조하세요.

메모

Docker의 라이선스 요구 사항은 다양한 버전의 Docker Desktop에 따라 다를 수 있습니다. Docker 설명서 참조하여 현재 상황에서 개발을 위해 Docker Desktop 버전을 사용하기 위한 현재 라이선스 요구 사항을 이해합니다.

Visual Studio의 Podman 지원

Visual Studio는 디먼리스 컨테이너 엔진을 제공하는 인기 있는 컨테이너 관리 도구인 Podman 컨테이너를 지원합니다. Visual Studio에서 직접 Podman CLI를 사용하여 컨테이너를 실행하고 관리할 수 있습니다. Podman을 사용하여 Docker와 동일한 방식으로 단일 컨테이너 앱을 실행할 수 있습니다.

Podman 컨테이너를 사용하려면 CLI에서 Podman을 시작하고 Visual Studio에서 솔루션을 엽니다. 기본적으로 Container Tools는 Podman 또는 Docker가 실행 중인지 자동으로 검색하고 앱을 시작할 때 현재 활성 컨테이너 런타임을 사용합니다. 컨테이너 런타임을 수동으로 구성하려면 도구 > 옵션 > 컨테이너 도구 > 컨테이너 런타임 으로 이동하여 Podman 또는 Docker를 선택합니다. 기본 설정은 Auto입니다. 즉, Visual Studio에서 현재 활성 컨테이너 런타임을 검색하려고 합니다. 도구 > 옵션 창을 닫아 설정 변경을 커밋합니다.

컨테이너 창

컨테이너 창을 사용하면 컴퓨터에서 컨테이너 및 이미지를 보고 해당 컨테이너와 함께 무슨 일이 일어나고 있는지 확인할 수 있습니다. 파일 시스템, 탑재된 볼륨, 환경 변수, 사용된 포트를 보고 로그 파일을 검사할 수 있습니다.

빠른 실행(Ctrl+)을 사용하고 입력하여 containers 창을 엽니다. 도킹 컨트롤을 사용하여 창을 어딘가에 배치할 수 있습니다. 창의 너비 때문에 화면 아래쪽에 도킹할 때 가장 잘 작동합니다.

컨테이너를 선택하고 탭을 사용하여 사용 가능한 정보를 봅니다. 확인하려면 Docker 지원 앱을 실행하고, 파일 탭을 열고, 폴더를 확장하여 컨테이너에 배포된 앱을 확인합니다.

컨테이너 창을 보여 주는 스크린샷.

컨테이너 창의 스크린샷

컨테이너 창의 스크린샷

자세한 내용은 컨테이너 창을 참조하세요.

Docker Compose 지원

Docker Compose를 사용하여 다중 컨테이너 솔루션을 작성하려는 경우 프로젝트에 컨테이너 오케스트레이터 지원을 추가합니다. 이렇게 하면 동일한 docker-compose.yml 파일에 정의된 경우 컨테이너 그룹(전체 솔루션 또는 프로젝트 그룹)을 동시에 실행하고 디버그할 수 있습니다.

Docker Compose를 사용하여 컨테이너 오케스트레이터 지원을 추가하려면 솔루션 탐색기에서 애플리케이션을 마우스 오른쪽 단추로 클릭한 다음컨테이너 작성 지원>를 선택합니다.

Docker Compose를 사용하여 컨테이너 오케스트레이터 지원을 추가하려면 솔루션 탐색기프로젝트 노드를 마우스 오른쪽 단추로 클릭하고 > 컨테이너 오케스트레이터 지원추가를 선택합니다. 그런 다음 Docker Compose 선택하여 컨테이너를 관리합니다.

프로젝트에 컨테이너 오케스트레이터 지원을 추가하면 프로젝트에 추가된 Dockerfile(아직 없는 경우)과 솔루션 탐색기솔루션에 추가된 docker-compose 폴더가 다음과 같이 표시됩니다.

솔루션 탐색기의 Docker 파일을 보여 주는 스크린샷

Visual Studio의 솔루션 탐색기에서 Docker 파일 스크린샷

Visual Studio의 솔루션 탐색기에서 Docker 파일 스크린샷

docker-compose.yml 이미 있는 경우 Visual Studio는 필요한 구성 코드 줄만 추가합니다.

Docker Compose를 사용하여 제어하려는 다른 프로젝트와 함께 프로세스를 반복합니다.

많은 수의 서비스를 사용하는 경우 디버깅 세션에서 시작하려는 서비스의 하위 집합을 선택하여 시간과 컴퓨팅 리소스를 절약할 수 있습니다. Compose 서비스의 하위 집합을 시작합니다.

메모

Visual Studio 도구에서는 원격 Docker 호스트가 지원되지 않습니다.

Service Fabric 지원

Service Fabric 애플리케이션 프로젝트는 Visual Studio 2026에서 제거되었으며 Visual Studio 확장이 됩니다. 가용성에 대한 상태는 이 GitHub 문제를 참조하세요.

Visual Studio의 Service Fabric 도구를 사용하면 Azure Service Fabric을 개발 및 디버그하고, 로컬로 실행 및 디버그하고, Azure에 배포할 수 있습니다.

Visual Studio 2019 및 Visual Studio 2022는 Windows 컨테이너 및 Service Fabric 오케스트레이션을 사용하여 컨테이너화된 마이크로 서비스 개발을 지원합니다.

자세한 자습서는 자습서: Azure Service FabricWindows 컨테이너에 .NET 애플리케이션 배포를 참조하세요.

Azure Service Fabric에 대한 자세한 내용은 Service Fabric참조하세요.

CI/CD(지속적인 전달 및 지속적인 통합)

Visual Studio는 Azure Pipelines와 쉽게 통합되어 서비스 코드 및 구성에 대한 변경 내용의 자동화되고 지속적인 통합 및 배달을 지원합니다. 시작하려면 첫 번째 파이프라인만들기를 참조하세요.

Service Fabric의 경우 자습서: Azure DevOps Projects사용하여 Azure Service Fabric에 ASP.NET Core 앱 배포를 참조하세요.

다음 단계

컨테이너 작업을 위한 Visual Studio 도구의 서비스 구현 및 사용에 대한 자세한 내용은 다음 문서를 참조하세요.

컨테이너에 대한 지원 추가

Visual Studio의 컨테이너 도구

로컬 컨테이너에서 앱 디버깅

Visual Studio 사용하여 컨테이너 레지스트리에 ASP.NET 컨테이너 배포

Azure App Service에 배포

Visual Studio 사용하여 Azure Container Apps에 배포