Hintergrund: Einige Experimente müssen auf dem Server durchgeführt werden. Um den Code auf dem Remote-Server schnell und bequem lokal zu debuggen, ist daher eine direkte Verbindung zwischen dem lokalen und dem Remote-Server erforderlich. Allerdings ist Docker zu diesem Zeitpunkt bereits auf vielen Servern installiert und es ist normalerweise erforderlich, den Code in Docker zu debuggen. Daher wird in diesem Artikel hauptsächlich die Konfigurationsmethode für den Remotezugriffsserver Docker beschrieben. Benötigtes Werkzeug und Anleitung:
1. Konfigurieren Sie den Remote-Server-Docker Schritt 1: Kaufen und konfigurieren Sie einen Server (überspringen, wenn Sie bereits einen Server haben) Schritt 2: Docker installieren (überspringen, wenn Sie Docker bereits haben) sudo curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun Für Einzelheiten verweisen wir auf die Referenzen am Ende des Artikels [2]. Hinweis: Der Befehl sudo wird mit dem höchsten Root-Recht ausgeführt. Wenn das aktuelle Konto root ist, ist der Befehl sudo nicht erforderlich. Schritt 3: Ziehen Sie das Bild Die offizielle Image-Website ist Docker Hub. Dort finden Sie Images, die Ihren Produktionsanforderungen entsprechen. Nehmen wir PyTorch als Beispiel und ziehen das Bild: sudo docker pull pytorch/pytorch Sie können die entsprechenden Dateien herunterladen und die abgerufenen Bilder mit dem folgenden Befehl anzeigen: sudo Docker-Bilder Für Einzelheiten verweisen wir auf die Referenzen am Ende des Artikels [6]. Schritt 4: Einen Container erstellen Nachdem Sie das Image erhalten haben, müssen Sie einen Container basierend auf dem Image instanziieren. Hier wird der Befehl „run“ verwendet, um den Container zu instanziieren: ssudo docker run -p [selbst gewählte Portnummer]:22 --gpus all -itd --name [selbst gewählter Name] -v [Hostverzeichnis (lokales Verzeichnis)]:[benutzerdefiniertes Verzeichnis im erstellten Container] /bin/bash Führen Sie den obigen Befehl aus, um einen Container zu instanziieren. Die relevanten Parameter sind:
Darüber hinaus können -i , -t und -d zusammen geschrieben werden, zum Beispiel -it , -itd . sudo docker run -p 8848:22 --gpus all -itd --name wjn -v /home/gm/wangjianing/docker:/wjn pytorch/pytorch /bin/bash Es zeigt an, dass das instanziierte Image pytorch/pytorch ein Container ist, der die Host-Portnummer 8848 belegt und mit SSH-Port 22 verbunden ist. Es kann alle GPUs verwenden. Der Name ist „wjn“. Die Hostadresse „/home/gm/wangjianing/docker“ ist mit dem Verzeichnis „/wjn“ im Container verknüpft und verwendet /bin/bash als Befehlsskript. Nach der Erstellung können Sie alle instanziierten Container anzeigen sudo docker ps Schritt 5: Öffnen Sie den Port Wenn der Port durch eine Firewall geschützt ist, müssen Sie ihn selbst öffnen: sudo /sbin/iptables -I INPUT -p tcp --dport 8848 -j AKZEPTIEREN Schritt 6: Starten Sie den Container Starten Sie den Container, sodass er ausgeführt wird: sudo docker start [Container-ID oder Ihr eigener Name] Wenn beispielsweise die gerade erstellte Containernummer „5621fade441e“ und der Name „wjn“ ist, können Sie Folgendes ausführen: sudo docker start 5621fade441e oder sudo docker start wjn Nach dem Start können Sie: sudo docker ps -a Zeigen Sie alle gestarteten und laufenden Container an, wie in der Abbildung dargestellt: Hinweis: An dieser Stelle sollten Sie die relevanten Informationen des Containers sehen können. Achten Sie besonders auf das PORTS-Attribut. Die Port-Informationen werden benötigt, um zu bestimmen, ob der aktuell erstellte Container über den Port erreichbar ist. Ohne diese Informationen kann der Remote-Zugriff auf den Container nicht abgeschlossen werden. Derzeit kann der Port des erstellten Containers nicht direkt geändert werden, er kann also nur neu erstellt werden. Schritt 7: Den Container betreten Um den Container zu betreten, verwenden Sie den Befehl: sudo docker exec -it [Container-ID oder Ihr eigener Name] /bin/bash 2. Containerkonfiguration ssh Ich dachte, dass ich nach dem Erstellen von Docker direkt über SSH auf den Container zugreifen könnte, aber später stellte ich fest, dass ich den Container aufrufen und eine Reihe von SSH-Konfigurationen durchführen musste. Die wichtigsten Schritte sind wie folgt: Schritt 8: Installieren Sie ssh : Geben Sie den neu erstellten Container ein und führen Sie den folgenden Befehl aus: passendes Update apt install -y openssh-server Erstellen Sie anschließend einen Konfigurationsordner und nehmen Sie die erforderlichen Konfigurationen vor: mkdir /var/run/sshd echo 'root:passwd' | chpasswd Beachten Sie, dass root hier den Benutzernamen angibt, auf den später remote zugegriffen werden soll, und passwd das Zugriffskennwort ist, das Sie selbst festlegen können. Ich habe es beispielsweise wie folgt festgelegt: echo 'root:123456' | chpasswd Schritt 9: Anmeldeberechtigungen festlegen : Führen Sie die folgenden drei Befehlszeilen aus, um Berechtigungen festzulegen sed -i ‚s/PermitRootLogin prohibit-password/PermitRootLogin yes/‘ /etc/ssh/sshd_config sed 's@session\serforderlich\spam_loginuid.so@session optional pam_loginuid.so@g' -i /etc/pam.d/sshd echo "export VISIBLE=now" >> /etc/profile Schritt 10: Ändern Sie die SSH-Konfigurationsdatei Nach Abschluss des zweiten Schritts kann der Blogger immer noch keine Remoteverbindung herstellen. Nach einer Abfrage stellte er fest, dass er die entsprechenden Konfigurationsdateien ändern musste: vim /etc/ssh/sshd_config Wenn vim nicht installiert ist, führen Sie Folgendes aus: apt install vim Ändern Sie die Datei nach dem Öffnen: Führen Sie im Vim-Editor den folgenden Befehl zum Speichern und Beenden aus:
Starten Sie abschließend den SSH-Dienst neu: Dienst SSH neu starten Für Einzelheiten wird auf die Referenzen [1] und [3] verwiesen. 3. SSH-Test Nach Abschluss der Konfiguration sollten die Servereinstellungen vollständig sein. Sie können einen einfachen Test durchführen. Führen Sie beispielsweise (1) den Befehl auf dem Hostcomputer aus, um den aktuellen Port anzuzeigen. Sie können sehen, dass Port 8848 verfügbar ist. sudo netstat -ntlp (2) Sie können auch Befehle auf dem Hostcomputer ausführen, um zu überprüfen, ob für den aktuellen Container eine entsprechende Portzuordnungsbeziehung besteht: sudo docker port [Container-ID oder Ihr eigener Name] 22 Beispielsweise gibt der Blogger nach der Ausführung 0.0.0.0:8848 zurück, was auf Erfolg hinweist. (3) Betreten Sie den Container und führen Sie aus:
Rufen Sie die Python-Umgebung auf und führen Sie sie aus Taschenlampe importieren drucken(torch.cuda.is_available()) Wenn True zurückgegeben wird, bedeutet dies, dass der Docker die GPU verwenden kann. (4) Versuchen Sie den Fernzugriff. Auf jedem angeschlossenen Rechner (wenn Sie sich in einem LAN befinden, müssen Sie eine Verbindung zu einem VPN herstellen):
Wenn die Kennwortabfrage angezeigt wird, bedeutet dies, dass die Verbindung erfolgreich war. Nach Eingabe des Kennworts können Sie direkt den entsprechenden Container aufrufen. Beispielsweise führt der Blogger aus: ssh [email protected] -p 8848 Die folgenden Informationen werden angezeigt und geben an, dass die Verbindung erfolgreich war. 4. Pycharm-Test Wenn Sie pycharm verwenden, um direkt auf den Remote-Server-Docker zuzugreifen, können Sie relevante Einstellungen in pycharm vornehmen: Schritt 11: pycharm installieren (überspringen, falls bereits installiert) Sie müssen die professionelle Version von pycharm installieren. Nach der Installation können Sie den Aktivierungscode verwenden oder direkt auf die offizielle Website gehen, um ein Konto mit einer Studenten-E-Mail-Adresse zu registrieren und es ein Jahr lang kostenlos zu nutzen. Geben Sie nach der Installation pycharm ein Für Einzelheiten verweisen wir auf die Referenzen am Ende des Artikels [7]. Schritt 12: SSH einrichten Klicken Sie wie unten gezeigt der Reihe nach, um das Menü aufzurufen: Fügen Sie dann eine neue Verbindung hinzu und klicken Sie von links nach rechts: Rufen Sie die SSH-Bearbeitungsoberfläche auf und geben Sie die Konfigurationsinformationen ein: Klicken Sie auf "Verbindung testen", um sie zu testen. Wenn sie erfolgreich ist, bedeutet dies, dass pycharm auch eine Verbindung zum Remote-Container herstellen kann: Kehren Sie zur vorherigen Seite zurück, wählen Sie das konfigurierte SSH aus und wählen Sie dann das spezifische Verzeichnis im Container aus, mit dem PyCharm verknüpft werden soll. Beispielsweise wählt der Blogger beim Erstellen des Containers direkt das mit dem Domänenhost verknüpfte Verzeichnis /wjn als Speicherort aus, an dem PyCharm Aktualisierungen und Uploads durchführen kann, und speichert es dann. Zu diesem Zeitpunkt sind alle Konfigurationsarbeiten abgeschlossen und Sie können das Projekt im Server-Docker in PyCharm frei debuggen. Quellen: [1] Das Passwort für die Remote-Anmeldung beim SSH-Client auf dem Linux-Server ist immer falsch [2] Docker-Installation [3] PyCharm + Docker: Erstellen Sie den komfortabelsten Alchemieofen für Deep Learning [4] Pycharm-Remoteverbindungsserver zum Ausführen von Code und Debuggen [5] Lösen Sie das Problem der Speichererschöpfung während der PyTorch-GPU-Berechnung [6] Verwendung von Docker-Images [7] Wie Studenten alle Funktionen der professionellen Version von Pycharm kostenlos nutzen können Dies ist das Ende dieses Artikels über das ausführliche Tutorial zum PyCharm- und SSH-Fernzugriff auf den Docker-Server. Weitere relevante Inhalte zum PyCharm-Fernzugriff auf Docker finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen! Das könnte Sie auch interessieren:
|
<<: Detaillierte Erklärung der integrierten Methoden des Javascript-Arrays
>>: So konvertieren Sie eine Spalte mit durch Kommas getrennten Werten in Spalten in MySQL
Vorwort: Der Installationsvorgang wird nicht im D...
Ich habe Apache nie verwendet. Nachdem ich angefa...
Alibaba Cloud Server installiert und konfiguriert...
animation-name Animationsname, kann mehrere Werte...
Die Fallstricke 1. In vielen Tutorials im Interne...
Ich habe vor Kurzem ein Mac-System verwendet und ...
Das Telnet im Alpine-Image wurde nach Version 3.7...
Dieses Projekt teilt den spezifischen Code von Vu...
Ergebnisse erzielen Der Code lautet wie folgt htm...
bei um + Zeit um 17:23 at> touch /mnt/file{1.....
Die Tags <abbr> und <acronym> stellen ...
Als ich kürzlich an einem System zur Gesundheitse...
Inhaltsverzeichnis 1. Einleitung 2. Mehrere Mögli...
Vorbereiten: Definieren Sie eine Lehrertabelle un...
Inhaltsverzeichnis Phänomen Ursachenanalyse Aufru...