Visual Studio를 사용하여 Windows Docker 컨테이너 또는 Linux .NET Core Docker 컨테이너에서 실행되는 앱을 디버그할 수 있습니다.
필수 구성 요소
Linux 서버에 아직 없는 경우 SSH 서버를 설치하고, 압축을 풀고, curl 또는 wget을 사용하여 설치해야 합니다. 예를 들어 Ubuntu에서 다음을 실행하여 수행할 수 있습니다.
sudo apt-get install openssh-server unzip curl
SFTP(보안 파일 전송 프로토콜)도 사용하도록 설정해야 합니다. 대부분의 SSH 배포판은 기본적으로 SFTP를 설치하고 사용하도록 설정하지만 항상 그런 것은 아닙니다.
Linux Docker 컨테이너에서 실행되는 프로세스에 연결
프로세스에 연결 대화 상자를 사용하여 로컬 또는 원격 컴퓨터의 Linux .NET Core Docker 컨테이너에서 실행되는 프로세스에 Visual Studio 디버거를 연결할 수 있습니다.
중요하다
이 기능을 사용하려면 소스 코드에 대한 로컬 액세스 권한이 있어야 합니다.
메모
이러한 지침을 사용하여 SSH를 통해 WSL에서 실행되는 Linux Docker에 연결할 수 있지만 WSL 인스턴스는 먼저 SSH 서버를 실행해야 합니다. 예를 들어 Open SSH Server(예: sudo apt-get install openssh-server
)를 설치하고 구성 파일(예: /etc/ssh/sshd_config)을 편집하여 서버를 구성한 다음 서버를 시작할 수 있습니다(예: sudo service ssh start
).
Linux Docker 컨테이너에서 실행 중인 프로세스에 연결하려면 다음을 수행합니다.
Visual Studio에서 디버그 > 프로세스에 연결(Ctrl+Alt+P) 선택하여 프로세스에 연결 대화 상자를 엽니다.
연결 유형을 Docker(Linux 컨테이너)로 설정합니다.
찾기...를 선택하여 연결 대상을 Docker 컨테이너 선택 대화 상자를 통해 설정합니다.
로컬 또는 원격으로 Docker 컨테이너 프로세스를 디버그할 수 있습니다.
Docker 컨테이너 프로세스를 로컬로 디버그하려면 다음을 수행합니다.
Docker CLI 호스트을 로컬 머신 로설정합니다.
목록에서 연결할 실행 중인 컨테이너를 선택하고 확인을 누릅니다.
Docker 컨테이너 프로세스를 원격으로 디버그하려면 다음을 수행합니다.
두 가지 옵션 중 하나를 사용하여 Docker 컨테이너에서 실행 중인 프로세스에 연결할 수 있습니다. SSH를 사용하는 첫 번째 옵션은 로컬 컴퓨터에 Docker 도구가 설치되어 있지 않은 경우에 이상적입니다. 로컬에 Docker 도구가 설치되어 있고 원격 요청을 수락하도록 구성된 Docker 디먼이 있는 경우 Docker 디먼을 사용하여 두 번째 옵션을 사용해 보세요.
SSH를 통해 원격 컴퓨터에 연결하려면 다음을 수행합니다.
-
추가...를 선택합니다. 원격 시스템에 연결합니다.
- 필요한 연결 정보를 입력하고 "연결"을 선택합니다.
- SSH에 연결한 후 실행 중인 컨테이너를 선택하여 연결하고, 그 다음 확인을 선택합니다.
-
추가...를 선택합니다. 원격 시스템에 연결합니다.
대상을 Docker 디먼통해 프로세스를 실행하는 원격 컨테이너로 설정하려면 다음을 수행합니다.
- Docker 호스트(선택 사항)아래에서 데몬 주소(예: TCP, IP 등)를 지정하고, 그 다음 새로 고침을선택합니다.
- 디먼에 성공적으로 연결한 후, 연결할 실행 중인 컨테이너를 선택한 다음 확인선택합니다.
사용 가능한 프로세스 목록에서 해당 컨테이너 프로세스를 선택하고 연결 선택하여 Visual Studio에서 C# 컨테이너 프로세스 디버깅을 시작합니다.
Windows Docker 컨테이너에서 실행되는 프로세스에 연결
프로세스에 연결 대화 상자를 사용하여 로컬 컴퓨터의 Windows Docker 컨테이너에서 실행되는 프로세스에 Visual Studio 디버거를 연결할 수 있습니다.
중요하다
.NET Core 프로세스에서 이 기능을 사용하려면 .NET Core 플랫폼 간 개발 워크로드를 설치하고 소스 코드에 대한 로컬 액세스 권한이 있어야 합니다.
Windows Docker 컨테이너에서 실행 중인 프로세스에 연결하려면 다음을 수행합니다.
Visual Studio에서 디버그 > 프로세스에 첨부(또는 Ctrl+Alt+P)를 선택하여 프로세스에 첨부 대화 상자를 엽니다.
연결 유형을(를) Docker(Windows 컨테이너)로 설정하십시오.
찾기...을 선택한 후 연결 대상을 Docker 컨테이너 선택 대화 상자를 사용하여 설정합니다.
중요하다
대상 프로세스에는 실행 중인 Docker Windows 컨테이너와 동일한 프로세서 아키텍처가 있어야 합니다.
SSH를 통해 대상을 원격 컨테이너로 설정하는 것은 현재 사용할 수 없으며 Docker 디먼을 사용하여 수행할 수 있습니다.
대상을 Docker 디먼통해 프로세스를 실행하는 원격 컨테이너로 설정하려면 다음을 수행합니다.
Docker 호스트(선택 사항)에 디먼 주소(TCP, IP 등)를 지정한 다음 새로 고침 버튼을 누릅니다.
디먼에 성공적으로 연결한 후, 연결할 실행 중인 컨테이너를 선택하고, 확인을 선택합니다.
사용 가능한 프로세스 목록에서 해당 컨테이너 프로세스를 선택하고 연결 선택하여 C# 컨테이너 프로세스 디버깅을 시작합니다.