컨테이너 볼륨 매핑 사용자 지정
컨테이너에서 디버깅이 작동하기 위해 Visual Studio에서는 볼륨 매핑을 사용하여 호스트 머신의 디버거 및 NuGet 폴더를 매핑합니다. 볼륨 매핑은 여기 Docker 설명서에 설명되어 있습니다. Visual Studio의 컨테이너 창을 사용하여 컨테이너에 대한 볼륨 매핑을 볼 수 있습니다.
필수 조건
- Docker Desktop
- 웹 개발, Azure 도구 워크로드 및/또는 .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 토큰 처리, 핫 다시 로드 에이전트 및 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
명령줄 인수를 사용하여 다른 볼륨을 탑재할 수 있습니다.
컨테이너화된 프로젝트에 대한 프로젝트 파일을 엽니다.
새 명령줄 인수를 지정하려면 MSBuild 속성
DockerfileRunArguments
를 추가하고-v
또는--mount
구문을 제공합니다. 예를 들어 다음 구문은myvolume
볼륨을 만들고/scratch
폴더의 컨테이너에 탑재합니다.<PropertyGroup> <DockerfileRunArguments>-v myvolume:/scratch</DockerfileRunArguments> </PropertyGroup>
-v 또는 --mount 옵션에 대한 명령줄 구문은 Docker 설명서를 참조하세요.