ist jetzt verfügbar! Lesen Sie über die neuen Funktionen und Fehlerbehebungen vom November.

FAQ zu Dev Containern

Dieser Artikel enthält einige häufig gestellte Fragen, um die Dev Containers-Erweiterung in verschiedenen Umgebungen einzurichten und zu verwenden.

Definieren „Dev Container-Definitionen“ die Bereitstellung einer Anwendung?

Nein. Ein Entwicklung-Container definiert eine Umgebung, in der Sie Ihre Anwendung entwickeln, bevor Sie sie bereitstellen. Obwohl Bereitstellungs- und Entwicklung-Container sich ähneln können, möchten Sie möglicherweise keine Tools in ein Bereitstellungs-Image aufnehmen, die Sie während der Entwicklung verwenden.

Das Repository devcontainers/templates enthält eine Reihe von Dev-Container-Definitionen für einige gängige Entwicklungsumgebungen. Sie können sich auch an einen laufenden Container anhängen, ohne eine Dev-Container-Definition einzurichten, wenn Sie einen alternativen Container-Build- oder Bereitstellungsworkflow verwenden möchten.

Definieren „Dev Container-Definitionen“ die Erstellung einer Anwendung? Wie Buildpacks?

Nein. Das Buildpacks-Konzept konzentriert sich darauf, Quellcode zu nehmen und durch eine Reihe definierter Schritte bereitstellbare Container-Images zu generieren. Ein Dev-Container ist eine Umgebung, in der Sie Ihre Anwendung entwickeln können, bevor Sie mit dem Erstellen beginnen. Sie sind daher ergänzende Konzepte.

Ich sehe Fehler, wenn ich versuche, das lokale Dateisystem in einen Container einzubinden

Klicken Sie mit der rechten Maustaste auf das Docker-Taskleistenelement. Wählen Sie unter Windows im Menü Einstellungen die Option Ressourcen > Dateifreigabe und überprüfen Sie das Laufwerk/die Laufwerke, auf denen sich Ihr Quellcode befindet. Wählen Sie unter macOS im Menü Einstellungen die Option Ressourcen > Dateifreigabe und stellen Sie sicher, dass der Ordner, der Ihren Quellcode enthält, unter einem Dateipfad aufgeführt ist, der in der Liste angegeben ist.

Siehe Tipps zu Docker Desktop für Windows für Informationen zu Workarounds für häufige Probleme mit Docker für Windows.

Ich sehe eine Fehlermeldung über eine fehlende Bibliothek oder Abhängigkeit

Einige Erweiterungen sind auf Bibliotheken angewiesen, die in bestimmten Docker-Images nicht gefunden werden. Beispielsweise erfordert Visual Studio Live Share die Installation von systemweiten Abhängigkeiten, die in ihrer Dokumentation aufgeführt sind. Die Notwendigkeit dieser Abhängigkeiten kann vom Betriebssystem (z. B. einer bestimmten Linux-Distribution) abhängen, das von Ihrem Docker-Image verwendet wird. Möglicherweise müssen Sie diese Abhängigkeiten während des Docker-Build-Prozesses installieren, indem Sie die erforderlichen Befehle zu Ihrer Dockerfile hinzufügen. Suchen Sie in der Dokumentation der jeweiligen Erweiterung nach Abhängigkeiten und lesen Sie Zusätzliche Software installieren, um Hilfe bei der Lösung des Problems zu erhalten.

Kann ich mich gleichzeitig mit mehreren Containern verbinden?

Ein VS Code-Fenster kann derzeit nur mit einem Fenster verbunden werden, aber Sie können ein neues Fenster öffnen und sich an einen bereits laufenden Container anhängen oder eine gemeinsame Docker Compose-Datei mit mehreren devcontainer.json-Dateien verwenden, um den Prozess etwas zu automatisieren.

Kann ich mit Containern auf einem Remote-Host arbeiten?

Ja, siehe die Abschnitte zum Öffnen eines Ordners auf einem Remote-SSH-Host in einem Container oder Remote Tunnels-Host in einem Container für weitere Informationen.

Wie kann ich Container-Images in meine lokale Docker/Kubernetes-Installation erstellen oder bereitstellen, wenn ich in einem Container arbeite?

Sie können Images erstellen und Container bereitstellen, indem Sie den Docker-Socket weiterleiten und die Docker CLI (und kubectl für Kubernetes) im Container installieren. Weitere Informationen finden Sie in den Dev-Container-Definitionen Docker außerhalb von Docker, Docker außerhalb von Docker Compose und Kubernetes-Helm.

Welche Konnektivitätsanforderungen gibt es für den VS Code Server, wenn er in einem Container ausgeführt wird?

Die Installation des VS Code Servers erfordert, dass Ihr lokaler Rechner eine ausgehende HTTPS-Verbindung (Port 443) zu

  • update.code.visualstudio.com
  • vscode.download.prss.microsoft.com

Die Dev Containers-Erweiterungen laden den VS Code Server lokal herunter und kopieren ihn nach der Verbindung in den Container.

Sie können Erweiterungen manuell ohne Internetverbindung mit dem Befehl Erweiterungen: Von VSIX installieren... installieren. Wenn Sie jedoch das Erweiterungsfenster oder devcontainer.json zum Installieren von Erweiterungen verwenden, benötigen Ihr lokaler Rechner und der VS Code Server eine ausgehende HTTPS-Verbindung (Port 443) zu

  • marketplace.visualstudio.com
  • *.gallerycdn.vsassets.io (Azure CDN)

Schließlich laden einige Erweiterungen (wie C#) sekundäre Abhängigkeiten von download.microsoft.com oder download.visualstudio.microsoft.com herunter. Andere (wie Visual Studio Live Share) können zusätzliche Konnektivitätsanforderungen haben. Konsultieren Sie die Dokumentation der Erweiterung für Details, wenn Sie Probleme haben.

Der VS Code Server läuft auf einem zufälligen Port innerhalb des Containers, und VS Code selbst verwendet docker exec, um über den von Docker konfigurierten Kommunikationskanal mit ihm zu kommunizieren.

Was muss ich als Erweiterungsautor tun, um sicherzustellen, dass meine Erweiterung funktioniert?

Die VS Code-Erweiterungs-API verbirgt die meisten Implementierungsdetails der Remote-Ausführung, sodass viele Erweiterungen ohne Änderungen in Dev-Containern funktionieren. Wir empfehlen jedoch, Ihre Erweiterung in einem Dev-Container zu testen, um sicherzustellen, dass alle ihre Funktionen wie erwartet funktionieren. Weitere Informationen finden Sie im Artikel Remote-Entwicklung unterstützen.

Welche anderen Ressourcen gibt es, die meine Frage beantworten könnten?

Die folgenden Artikel können Ihnen helfen, Ihre Frage zu beantworten

Kann ich Dev-Container außerhalb von VS Code verwenden?

Da die Containerisierung von Produktions-Workloads alltäglich wird, sind Dev-Container für Szenarien über VS Code hinaus nützlich geworden. Wir erstellen die Development Container Specification, um jedem in jedem Tool die Konfiguration einer konsistenten Entwicklungsumgebung zu ermöglichen. Sie zielt darauf ab, Möglichkeiten zu finden, bestehende Formate mit gängigen entwicklungsspezifischen Einstellungen, Tools und Konfigurationen anzureichern, während gleichzeitig eine vereinfachte, un-orchestriete Einzelcontainer-Option angeboten wird – damit sie als Programmierumgebungen oder für kontinuierliche Integration und Tests verwendet werden können.

Sie können mehr erfahren und die Spezifikation unter containers.dev überprüfen. Aktive Vorschläge können Sie im Repository devcontainers/spec auf GitHub einsehen und dazu beitragen.

© . This site is unofficial and not affiliated with Microsoft.