다음을 통해 공유


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

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

필수 조건

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 토큰 처리, 핫 다시 로드 에이전트 및 Distroless Helper에 대한 지원을 포함하여 컨테이너 작업을 지원하는 Visual Studio 도구가 포함되어 있습니다.

.NET 8의 경우 루트 및 앱 사용자에 대한 추가 마운트 지점에 사용자 비밀 및 HTTPS 인증서가 포함될 수도 있습니다.

참고 항목

Visual Studio 17.10 Docker Desktop 없이 WSL(Linux용 Windows 하위 시스템)에서 Docker 엔진을 사용하는 경우 볼륨 탑재를 만들 때 Visual Studio에서 WSL 경로를 사용하도록 환경 변수 VSCT_WslDaemon=1을 설정합니다. NuGet 패키지 Microsoft.VisualStudio.Azure.Containers.Tools.Targets 1.20.0-Preview 1도 필요합니다.

ASP.NET 코어 웹앱의 경우 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 설명서를 참조하세요.