[LINUX] So entwickeln Sie Container auf Remote-Servern mit VS Code Remote-Containern

Überblick

Umgebung

Hintergrund

Beim Versuch, eine Entwicklungsumgebung für VS Code + Remote-Container auf einem Mac einzurichten, ist ein Fehler in Docker Desktop für Mac aufgetreten.

--Docker startet nicht unter Docker Desktop für Mac Stable Version (2.1.0.5) unter MacOS Catalina --Docker startet in der Edge-Version (2.1.7.0), aber der Prozess von com.docker.hyperkit bleibt bei 100% CPU (Fans brüllen)

Wenn man sich das Problem auf GitHub ansieht, startet Docker nicht und der Prozess-Runaway-Fehler hat lange gedauert und es ist keine Verbesserung in der Zukunft zu erwarten.

Darüber hinaus beschreibt die VS-Code-Dokumentation auch einen Prozessfehler.

Nach einigem Ausprobieren habe ich beschlossen, Docker auf dem Mac nicht mehr auszuführen, Docker auf einem Linux-Server auszuführen und eine Umgebung zu suchen, in der eine Remoteverbindung hergestellt werden kann. Die Standardeinstellung von Remote-Containern startet den Container jedoch in der lokalen Docker-Umgebung. Daher habe ich nach einer Möglichkeit gesucht, eine Verbindung zum Remote-Server herzustellen, und dies erkannt.

So stellen Sie mit Remote-Containern eine Verbindung zu einem Remote-Server her

Die Erläuterung zur Einführung und Einstellung von VS-Code und -Erweiterungen entfällt.

Zieldokument

Es wird unter dem Titel "Entwickeln in einem Container auf einem Remote-Docker-Host" beschrieben.

Einstellmethode

Es ist einfach einzurichten, fügen Sie einfach die Zeile "docker.host" zu "settings.json" hinzu und starten Sie VS Code neu.

** Einstellungsbeispiel für settings.json **

    "docker.host": "ssh://[email protected]"

Da für die SSH-Verbindung zum Remote-Server eine Schlüsselauthentifizierung erforderlich ist, legen Sie diese fest.

Klicken Sie hier, um die Dokumentation der SSH-Einstellungen in VS Code anzuzeigen.

Sobald die Schlüssel sowohl auf dem Server als auch auf dem Client bereit sind, konfigurieren Sie die VS-Code-Einstellungen.

In VS Code, run Remote-SSH: Open Configuration File... in the Command Palette (F1), select the SSH config file you wish to change, and add (or modify) a host entry in the config file as follows to point to the file:

Tatsächlich handelt es sich um eine SSH-Konfigurationseinstellung, sodass es kein Problem zu geben scheint, selbst wenn Sie sie direkt ändern. Geben Sie die Schlüsselposition an, indem Sie die Zeile "IdentityFile" hinzufügen.

** ~ / .ssh / config Einstellungsbeispiel **

Host 192.168.1.60
  HostName 192.168.1.60
  User root
  IdentityFile ~/.ssh/id_rsa

Sie können jetzt mit Remote-Containern eine direkte Verbindung zum Container auf dem Remote-Server herstellen. Es scheint eine andere Methode zu geben, die das TCP-Protokoll als das SSH-Protokoll verwendet, die jedoch nicht überprüft wurde.

Forward Port Unmittelbar nach dem Start von Remote-Containern werden das lokale Terminal und der Container auf dem Remote-Server isoliert, sodass keine direkte Verbindung zum Port im Container hergestellt werden kann. Fügen Sie daher Forward Port hinzu, um den Port des lokalen Terminals an den Port im Container zu übertragen.

Zieldokument

Verfahren

  1. Starten Sie den Server, den Sie testen möchten, im Container und überprüfen Sie, ob der Port empfangsbereit ist.
  2. Wählen Sie F1 → Remote-Container: Port vom Container weiterleiten ....
  3. Wählen Sie "XXXX weiterleiten" (XXXX ist die im Container gestartete Portnummer).
  4. Stellen Sie mit dem Browser des lokalen Terminals oder des Curl-Befehls eine Verbindung zu http: // localhost: XXXX her. (Wenn Sie localhost in Safari auf dem Mac angeben, tritt ein Fehler auf, sodass Sie eine Verbindung herstellen können, indem Sie ihn durch 127.0.0.1 ersetzen.)

Publish Port Wenn es schwierig ist, den Weiterleitungsport bei jedem Start des Containers festzulegen, legen Sie den Veröffentlichungsport fest und legen Sie fest, dass der Port beim Starten des Containers immer weitergeleitet wird.

Zieldokument

Verfahren

  1. Fügen Sie die Einstellung addPort zu devcontainer.json hinzu und geben Sie den Port an.
  2. Wählen Sie F1 → Remote-Container: Container neu erstellen. Erstellen Sie den Container neu.
  3. Starten Sie den Server, den Sie testen möchten, im Container und überprüfen Sie, ob der Port empfangsbereit ist.
  4. Stellen Sie mit dem Browser des lokalen Terminal- oder Curl-Befehls eine Verbindung zu http: // remote server IP oder FQDN: XXXX her

** Beispiel für die Einstellung von "devcontainer.json" (Docker: 9000, Container: 5000) **

	"appPort": ["9000:5000"],

Wenn im obigen Beispiel "Docker ps" ausgeführt wird, wird "PORTS" der Zielcontainer-ID zu "0.0.0.0:9000-> 5000 / tcp".

Zusammenfassung

Mit VS Code konnten wir eine nahtlose Containerentwicklungsumgebung erstellen. Sie müssen nur VS-Code auf Ihrem lokalen Terminal vorbereiten und benötigen nicht einmal einen Docker. Es ist eine Bedingung, dass der Remote-Server gestartet wird und immer eine Netzwerkverbindung erforderlich ist, aber ich denke, dass eine stressfreie Entwicklungsumgebung in dem Maße erstellt wurde, in dem genügend Änderungen eintreten. Bitte beachten Sie die Containerentwicklung mit Remote-Containern.

Recommended Posts

So entwickeln Sie Container auf Remote-Servern mit VS Code Remote-Containern
Holen Sie sich die stärkste Umgebung mit VS Code, Remote-Containern und Remote-Docker-Daemon
So erstellen Sie eine Python- und Jupyter-Ausführungsumgebung mit VSCode
Vorgehensweise zum Erstellen einer virtuellen Python-Umgebung mit VS-Code unter Windows
Verwendung von VS Code (Codeserver) mit Google Colab in nur 3 Zeilen
Strategie zur Monetarisierung mit Python Java
So entwickeln Sie eine Cart-App mit Django
So installieren Sie OpenGM unter OSX mit Macports
Verfahren zum Anhängen und Debuggen von VS-Code an Jupyter Lab auf einem Remote-Server
So erstellen Sie ein Python-Paket mit VS Code
Autoencoder im Chainer (Hinweise zur Verwendung von + Trainer)
[Django] Verwenden Sie VS Code + Remote-Container, um schnell eine Entwicklungsumgebung für Django-Container (Docker) zu erstellen.
Debuggen Sie die mit Docker-Compose mit VS-Code erstellte Django-Umgebung aus der Ferne
Hinweise zum Betrieb von Firefox mit Selen unter Windows
[Venv nicht erforderlich] Die stärkste Python-Entwicklungsumgebung, die mit Remote Containern erstellt wurde [VS Code / Docker]
So installieren Sie Python2.7 python3.5 mit pyenv (unter RHEL5 CentOS5) (2016 Nov)
Probieren Sie Fortran mit VS-Code aus, um Einstellungen zu debuggen. [Win10]
Erstellen Sie eine Go-Entwicklungsumgebung mit den Remote-Containern von VS Code
[Ev3dev] So zeigen Sie ein BMP-Bild mit Python auf dem LCD an
Einstellungen zum Eingeben und Debuggen des Inhalts der Bibliothek mit VS-Code
So installieren Sie Theano unter Mac OS X mit Homebrew
Python mit VSCode (Windows 10)
So registrieren Sie sich bei pypi
Wie aktualisiere ich mit SQLAlchemy?
Debuggen Sie Python mit VS-Code
Wie man mit Theano besetzt
Wie mit SQLAlchemy ändern?
So trennen Sie Zeichenfolgen mit ','
Wie man RDP auf Fedora31 macht
Wie man in Python entwickelt
Wie lösche ich mit SQLAlchemy?
So schreiben Sie Code für den Zugriff auf Python dashDB auf Bluemix oder lokal
So passen Sie U-Boot mit einer benutzerdefinierten Karte für OSD335X an (Hinweis)
So führen Sie Jupyter und Spark auf einem Mac mit minimalen Einstellungen aus
So verwenden Sie Python in Pyenv unter MacOS mit PyCall
Erste Schritte zur Lösung linearer Planungsprobleme mit PuLP
Herstellen einer Verbindung zum Cloud Firestore über Google Cloud-Funktionen mit Python-Code
So erhalten Sie den gesamten Datenverkehr über VPN mit OpenVPN unter Linux
Bearbeiten Sie Dateien direkt unter Linux mit Remote SSH in Visual Studio Code
Debuggen eines Python-Programms durch Remoteverbindung mit einem Docker-Container in einer WSL2-Umgebung mit VS-Code
So führen Sie den Übungscode des Buches "Profitable KI mit Python erstellen" in Google Colaboratory aus
Schritte zur Entwicklung von Django mit VSCode
Python: So verwenden Sie Async mit
So installieren Sie mysql-connector-python auf einem Mac
Hinweise zur Verwendung von Pywinauto
So verwenden Sie virtualenv mit PowerShell
So installieren Sie Python-Pip mit Ubuntu20.04LTS
So installieren Sie das Graph-Tool unter macOS
Umgang mit unausgeglichenen Daten
So installieren Sie VMware-Tools unter Linux
So stellen Sie den Django-Kompressor unter Windows bereit
Hinweise zur Verwendung von featuretools
So installieren Sie OpenCV auf einem Mac
Wie man Matplotlib auf Heroku ausführt
So installieren Sie PyPy unter CentOS
Wie fange ich mit Scrapy an?
Erste Schritte mit Python
Wie benutzt man Homebrew in Debian?