다음을 통해 공유


컨테이너 볼륨 매핑 사용자 지정

컨테이너에서 디버깅이 작동하려면 Visual Studio에서 볼륨 매핑을 사용하여 호스트 컴퓨터에서 디버거 및 NuGet 폴더를 매핑합니다. 볼륨 매핑은 여기Docker 설명서에 설명되어 있습니다. Visual Studio 컨테이너 창을 사용하여 컨테이너에 대한 볼륨 매핑을 볼 수 있습니다.

필수 구성 요소

  • Docker Desktop
  • Web Development, Azure Tools 워크로드 및/또는 .NET 데스크톱 개발 워크로드가 설치된 Visual Studio 2019 이상 .

Visual Studio 컨테이너 이미지의 볼륨 마운트

컨테이너에 탑재된 볼륨은 다음과 같습니다.

음량 설명
앱 폴더 Dockerfile이 있는 프로젝트 폴더를 포함합니다.
NuGet 패키지 폴더 프로젝트의 obj{project}.csproj.nuget.g.props 파일에서 읽은 NuGet 패키지 및 대체 폴더를 포함합니다.
원격 디버거 프로젝트 유형에 따라 컨테이너에서 디버거를 실행하는 데 필요한 비트를 포함합니다. 디버깅을 위해 컨테이너 이미지 사용자 지정을 참조하세요.
원본 폴더 Docker 명령에 전달되는 빌드 컨텍스트를 포함합니다.

컨테이너에 탑재된 볼륨은 다음과 같습니다. 컨테이너에 표시되는 내용은 사용 중인 Visual Studio 2022의 부 버전에 따라 다를 수 있습니다.

음량 묘사
앱 폴더 Dockerfile이 있는 프로젝트 폴더를 포함합니다.
NuGet 패키지 폴더들 프로젝트의 obj{project}.csproj.nuget.g.props 파일에서 읽은 NuGet 패키지 및 대체 폴더를 포함합니다.
원격 디버거 프로젝트 유형에 따라 컨테이너에서 디버거를 실행하는 데 필요한 비트를 포함합니다. 자세한 내용은 디버깅을 위해 컨테이너 이미지 사용자 지정을 참조하세요.
원본 폴더 Docker 명령에 전달되는 빌드 컨텍스트를 포함합니다.
VSTools 디버거 지원, 컨테이너 창, Azure 토큰 처리, 핫 다시 로드 에이전트 및 배포판 없는 도우미를 포함하여 컨테이너 작업을 지원하는 Visual Studio 도구가 포함되어 있습니다.

.NET 8의 경우 루트 및 사용자 비밀 및 HTTPS 인증서를 포함하는 앱 사용자에 대한 추가 탑재 지점도 있을 수 있습니다.

메모

Visual Studio 17.10 Docker Desktop이 없는 Windows 하위 시스템(WSL)에서 Docker 엔진을 사용하는 경우, 환경 변수 VSCT_WslDaemon=1를 설정하여 볼륨 마운트를 생성할 때 Visual Studio가 WSL 경로를 사용하도록 하십시오. NuGet 패키지 Microsoft.VisualStudio.Azure.Containers.Tools.Targets 1.20.0-Preview 1도 필요합니다.

ASP.NET Core 웹 앱의 경우 SSL 인증서 및 사용자 비밀에 대한 두 개의 추가 폴더가 있을 수 있습니다. 컨테이너화된 ASP.NET Core 앱에 SSL을 사용하는 방법에 대한 자세한 설명은 에서 확인할 수 있습니다.

컨테이너 볼륨 탑재

docker run 명령줄 인수를 사용하여 다른 볼륨을 탑재할 수 있습니다.

  1. 컨테이너화된 프로젝트에 대한 프로젝트 파일을 엽니다.

  2. 새 명령줄 인수를 지정하려면 MSBuild 속성 DockerfileRunArguments추가하고 -v 또는 --mount 구문을 제공합니다. 예를 들어 다음 구문은 볼륨 myvolume 만들고 /scratch폴더의 컨테이너에 탑재합니다.

    <PropertyGroup>
       <DockerfileRunArguments>-v myvolume:/scratch</DockerfileRunArguments>
    </PropertyGroup>
    

    -v 또는 --mount 옵션에 대한 명령줄 구문에 대한 Docker 설명서를 참조하세요.