共用方式為


連結至於 Docker 容器執行的處理序

您可以使用 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 容器執行的處理序

您可以使用 [連結至處理序] 對話框,將 Visual Studio 偵錯工具連結至本機或遠端電腦上 Linux .NET Core Docker 容器中執行的處理序。

重要

若要使用這項功能,您必須具有原始程式碼的本機存取權。

注意

您可以使用這些指示附加至透過 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 容器中的執行中處理序:

  1. 在 Visual Studio 中,選取 [偵錯 >附加至處理序 (CTRL+ALT+P)] ,以開啟 [附加至處理序] 對話方塊。

  2. 將 [連線類型] 設定為 [Docker (Linux 容器)]

    Visual Studio 中 [連結至處理序] 對話方塊的螢幕擷取畫面,其中顯示 Docker (Linux 容器) 的連線類型。

    Visual Studio 中 [連結至處理序] 對話方塊的螢幕擷取畫面,其中顯示 Docker (Linux 容器) 的連線類型。

  3. 選取 [尋找...],以透過 [選取 Docker 容器] 對話方塊來設定 [連線目標]

    您可以在本機或遠端偵錯 Docker 容器處理序。

    • 若要在本機偵錯 Docker 容器處理序:

      1. 將 [Docker CLI 主機] 設定為 [本機電腦]

      2. 從清單中選取要連結至的執行中容器,然後按 [確定]

        選取 [Docker 容器] 功能表的螢幕擷取畫面。

        選取 [Docker 容器] 功能表的螢幕擷取畫面。

    • 若要從遠端偵錯 Docker 容器處理序:

      您可以使用兩個選項之一,連線到 Docker 容器執行中的流程。 如果您未在本機電腦上安裝 Docker 工具,則使用 SSH 的第一個選項是理想的選項。 如果您已在本機安裝 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 容器執行的處理序

您可以使用 [連結至處理序] 對話框,將 Visual Studio 偵錯工具連結至本機電腦上 Windows Docker 容器中執行的處理序。

重要

若要搭配 .NET Core 處理序使用此功能,您必須安裝 .NET Core 跨平台開發工作負載,並具有原始程式碼的本機存取權。

若要連結至 Windows Docker 容器中的執行中處理序:

  1. 在 Visual Studio 中,選取 [偵錯 > 附加至處理序] (或按 CTRL+ALT+P) 來開啟 [附加至處理序] 對話方塊。

  2. 將 [連線類型] 設定為 [Docker (Windows 容器)]

    Visual Studio 中 [連結至處理序] 對話方塊的螢幕擷取畫面,其中顯示 Docker (Windows 容器) 的連線類型。

    Visual Studio 中 [連結至處理序] 對話方塊的螢幕擷取畫面,其中顯示 Docker (Windows 容器) 的連線類型。

  3. 選取 [尋找...],以使用 [選取 Docker 容器] 對話方塊來設定 [連線目標]

    重要

    目標處理序必須與執行所在的 Docker Windows 容器具有相同的處理器架構。

    目前無法使用透過 SSH 將目標設定為遠端容器,而且只能使用 Docker 精靈來完成。

    若要將目標設定為透過 Docker 精靈執行流程的遠端容器:

    1. 在 [Docker 主機 (選用)] 下指定精靈位址 (亦即透過 TCP、IP 等),然後選擇 [重新整理]。

    2. 成功連線到精靈之後,選取要連結的執行中容器,然後選擇 [確定]。

  4. 從 [可用處理序] 清單中 選擇對應的容器處理序,然後選取 [連結] 開始偵錯您的 C# 容器處理序。

    Visual Studio 中 [連結至處理序] 對話方塊的螢幕擷取畫面。連線類型設定為 Docker (Windows 容器),並選取 dotnet.exe 處理序。

    Visual Studio 中 [連結至處理序] 對話方塊的螢幕擷取畫面。連線類型設定為 Docker (Windows 容器),並選取 dotnet.exe 處理序。