Koppla till en process som körs på en Docker-container
Du kan felsöka appar som körs i antingen en Windows Docker-container eller en Linux .NET Core Docker-container med hjälp av Visual Studio.
Förutsättningar
Om den inte redan finns på Linux-servern måste du installera SSH-servern, packa upp och installera med antingen curl eller wget. På Ubuntu kan du till exempel göra det genom att köra:
sudo apt-get install openssh-server unzip curl
SFTP (Secure File Transfer Protocol) måste också vara aktiverat. De flesta SSH-distributioner installerar och aktiverar SFTP som standard, men så är inte alltid fallet.
Ansluta till en process som körs på en Linux Docker-container
Du kan koppla Visual Studio-felsökningsprogrammet till en process som körs i en Linux .NET Core Docker-container på din lokala dator eller fjärrdator med hjälp av dialogrutan Koppla till process.
Viktig
Om du vill använda den här funktionen måste du ha lokal åtkomst till källkoden.
Not
Du kan använda dessa instruktioner för att ansluta till Linux Docker som körs i WSL via SSH, men din WSL-instans måste först köra en SSH-server. Du kan till exempel installera Open SSH Server (till exempel: sudo apt-get install openssh-server
), konfigurera servern genom att redigera konfigurationsfilen (till exempel : /etc/ssh/sshd_config) och sedan starta servern (till exempel: sudo service ssh start
).
Så här ansluter du till en process som körs i en Linux Docker-container:
I Visual Studio väljer du Debug > Attach to Process (CTRL+ALT+P) för att öppna dialogrutan Koppla till process.
Ange Anslutningstyp till Docker (Linux-container).
Välj Sök... för att ange Anslutningsmål via dialogrutan Välj Docker-container.
Du kan felsöka en Docker-containerprocess antingen lokalt eller via fjärranslutning.
Så här felsöker du en Docker-containerprocess lokalt:
Ange Docker CLI-värd till lokal dator.
Välj en körande container för att ansluta till i listan och tryck på OK.
Så här felsöker du en Docker-containerprocess via fjärranslutning:
Du kan ansluta till en process som körs i en Docker-container med något av två alternativ. Det första alternativet för att använda SSH är perfekt om du inte har Docker-verktyg installerade på den lokala datorn. Om du har Docker-verktyg installerade lokalt och du har en Docker-daemon som är konfigurerad för att acceptera fjärrbegäranden kan du prova det andra alternativet med en Docker-daemon.
Så här ansluter du till en fjärrdator via SSH:
- Välj Lägg till... för att ansluta till ett fjärrsystem.
- Ange nödvändig anslutningsinformation och välj Anslut.
- När du har anslutit till SSH väljer du en container som körs att ansluta till och väljer sedan OK.
- Välj Lägg till... för att ansluta till ett fjärrsystem.
Så här anger du målet till en fjärrcontainer som kör en process via en Docker-daemon:
- Ange daemonadressen (dvs. via TCP, IP och så vidare) under Docker-värd (valfritt)och välj sedan Uppdatera.
- När du har anslutit till daemonet framgångsrikt, väljer du en container som körs att ansluta till den och väljer sedan OK.
Välj motsvarande containerprocess i listan över Tillgängliga processer och välj Bifoga för att börja felsöka C#-containerprocessen i Visual Studio!
Ansluta till en process som körs i en Windows Docker-container
Du kan koppla Visual Studio-felsökningsprogrammet till en process som körs i en Windows Docker-container på den lokala datorn med hjälp av dialogrutan Koppla till process.
Viktig
Om du vill använda den här funktionen med en .NET Core-process måste du installera arbetsbelastningen .NET Core Cross-Platform Development och ha lokal åtkomst till källkoden.
Så här ansluter du till en process som körs i en Windows Docker-container:
I Visual Studio väljer du Debug > Attach to Process (eller CTRL+ALT+P) för att öppna dialogrutan Koppla till process.
Ange Anslutningstyp till Docker (Windows Container).
Välj Hitta... för att ställa in anslutningsmål med hjälp av dialogrutan Välj Docker Container.
Viktig
Målprocessen måste ha samma processorarkitektur som Den Docker Windows-container som den körs på.
Att ange målet till en fjärrcontainer via SSH är för närvarande inte tillgängligt och kan bara göras med en Docker-daemon.
Så här anger du målet till en fjärrcontainer som kör en process via en Docker-daemon:
Ange daemonadressen (dvs. via TCP, IP och så vidare) under Docker-värd (valfritt) och välj sedan Uppdatera.
När du har anslutit till demonen väljer du en körande container att ansluta till och väljer sedan OK.
Välj motsvarande containerprocess i listan över Tillgängliga processer och välj Koppla för att börja felsöka C#-containerprocessen.