다음을 통해 공유


Docker 컨테이너에서 실행되는 프로세스에 연결

Windows Docker 컨테이너 또는 Linux .NET Core Docker 컨테이너에서 실행되는 앱을 Visual Studio로 디버그할 수 있습니다.

필수 조건

Linux 서버에 없다면 SSH 서버를 설치해야 합니다(curl 또는 wget을 사용하여 압축을 풀고 설치). 예를 들어 Ubuntu에서 다음을 실행하여 이 작업을 수행할 수 있습니다.

sudo apt-get install openssh-server unzip curl

SFTP(보안 파일 전송 프로토콜)도 사용하도록 설정해야 합니다. 대부분의 SSH 배포는 기본적으로 SFTP를 설치하고 사용하도록 설정 하지만 항상 그렇지는 않습니다.

Linux Docker 컨테이너에서 실행되는 프로세스에 연결

프로세스에 연결 대화 상자를 사용하여 로컬 또는 원격 컴퓨터의 Linux .NET Core Docker 컨테이너에서 실행되는 프로세스에 Visual Studio 디버거를 연결할 수 있습니다.

Important

이 기능을 사용하려면 소스 코드에 대한 로컬 액세스 권한이 있어야 합니다.

Linux Docker 컨테이너에서 실행 중인 프로세스에 연결하려면

  1. Visual Studio에서 디버그 > 프로세스에 연결(CTRL+ALT+P)을 선택하여 프로세스에 연결 대화 상자를 엽니다.

  2. 연결 형식Docker(Linux 컨테이너)로 설정합니다.

    Docker(Linux 컨테이너)의 연결 형식이 표시된 Visual Studio의 프로세스에 연결 대화 상자 스크린샷

    Docker(Linux 컨테이너)의 연결 형식이 표시된 Visual Studio의 프로세스에 연결 대화 상자 스크린샷

  3. 찾기...를 선택하여 Docker 컨테이너 선택 대화 상자를 통해 연결 대상을 설정합니다.

    Docker 컨테이너 프로세스는 로컬 또는 원격으로 디버그할 수 있습니다.

    • Docker 컨테이너 프로세스를 로컬로 디버그하려면

      1. Docker CLI 호스트로컬 컴퓨터로 설정합니다.

      2. 목록에서 연결할 실행 중인 컨테이너를 선택하고 확인을 누릅니다.

        선택한 Docker 컨테이너 메뉴의 스크린샷.

        선택한 Docker 컨테이너 메뉴의 스크린샷.

    • Docker 컨테이너 프로세스를 원격으로 디버그하려면:

      두 가지 옵션 중 하나를 사용하여 Docker 컨테이너에서 실행 중인 프로세스에 연결할 수 있습니다. SSH를 사용하는 첫 번째 옵션은 로컬 컴퓨터에 Docker 도구를 설치하지 않은 경우에 적합합니다. Docker 도구를 로컬로 설치했고 원격 요청을 허용하도록 구성된 Docker 디먼이 있는 경우 Docker 디먼을 사용하는 두 번째 옵션을 이용해 보세요.

      • SSH를 통해 원격 컴퓨터에 연결하려면

        1. 추가...를 선택하여 원격 시스템에 연결합니다.
          원격 시스템에 연결의 스크린샷.
          원격 시스템에 연결의 스크린샷.
        2. 필요한 연결 정보를 입력하고 연결을 선택합니다.
        3. SSH에 연결한 후 연결할 실행 중인 컨테이너를 선택한 다음 확인을 선택합니다.
      • Docker 디먼을 통해 프로세스를 실행하는 원격 컨테이너를 대상으로 설정하려면:

        1. Docker 호스트(선택 사항)에서 디먼 주소(즉, TCP, IP 등을 통해)를 지정한 다음 새로 고침을 선택합니다.
        2. 디먼에 성공적으로 연결한 후 연결할 실행 중인 컨테이너를 선택한 다음 확인을 선택합니다.
  4. 사용 가능한 프로세스 목록에서 해당 컨테이너 프로세스를 선택하고 연결을 선택하여 Visual Studio에서 C# 컨테이너 프로세스 디버깅을 시작합니다.

    Visual Studio의 프로세스에 연결 대화 상자 스크린샷 연결 형식이 Docker(Linux 컨테이너)로 설정되고 dotnet 프로세스가 선택되어 있습니다.

    Visual Studio의 프로세스에 연결 대화 상자 스크린샷 연결 형식이 Docker(Linux 컨테이너)로 설정되고 dotnet 프로세스가 선택되어 있습니다.

Windows Docker 컨테이너에서 실행되는 프로세스에 연결

프로세스에 연결 대화 상자를 사용하여 로컬 컴퓨터의 Windows Docker 컨테이너에서 실행되는 프로세스에 Visual Studio 디버거를 연결할 수 있습니다.

Important

.NET Core 프로세스에 이 기능을 사용하려면 .NET Core 플랫폼 간 개발 워크로드를 설치하고 소스 코드에 대한 로컬 액세스 권한이 있어야 합니다.

Linux Docker 컨테이너에서 실행 중인 프로세스에 연결하려면

  1. Visual Studio에서 디버그 > 프로세스에 연결(또는 CTRL+ALT+P)을 선택하여 프로세스에 연결 대화 상자를 엽니다.

  2. 연결 형식Docker(Windows 컨테이너)로 설정합니다.

    Docker(Windows 컨테이너)의 연결 형식이 표시된 Visual Studio의 프로세스에 연결 대화 상자 스크린샷

    Docker(Windows 컨테이너)의 연결 형식이 표시된 Visual Studio의 프로세스에 연결 대화 상자 스크린샷

  3. 찾기...를 선택하여 Docker 컨테이너 선택 대화 상자를 통해 연결 대상을 설정합니다.

    Important

    대상 프로세스는 실행 중인 Docker Windows 컨테이너와 프로세서 아키텍처가 동일해야 합니다.

    현재는 SSH를 통해 원격 컨테이너를 대상으로 설정할 수 없고 Docker 디먼을 사용해야만 합니다.

    Docker 디먼을 통해 프로세스를 실행하는 원격 컨테이너를 대상으로 설정하려면:

    1. Docker 호스트(선택 사항)에서 디먼 주소(즉, TCP, IP 등을 통해)를 지정한 다음 새로 고침을 선택합니다.

    2. 디먼에 성공적으로 연결한 후 연결할 실행 중인 컨테이너를 선택한 다음 확인을 선택합니다.

  4. 사용 가능한 프로세스 목록에서 해당 컨테이너 프로세스를 선택하고 연결을 선택하여 C# 컨테이너 프로세스 디버깅을 시작합니다.

    Visual Studio의 프로세스에 연결 대화 상자 스크린샷 연결 형식이 Docker(Windows 컨테이너)로 설정되고 dotnet.exe 프로세스가 선택되어 있습니다.

    Visual Studio의 프로세스에 연결 대화 상자 스크린샷 연결 형식이 Docker(Windows 컨테이너)로 설정되고 dotnet.exe 프로세스가 선택되어 있습니다.