GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

Wie man SSH in einen laufenden Docker-Container einfügt und Befehle ausführt

Einführung

Docker ist ein Dienstprogramm, mit dem Sie einen Container erstellen können für laufende Anwendungen. Ein Docker-Container ist eine vollständig abgeschlossene virtuelle Maschine.

Dieser Leitfaden zeigt Ihnen drei Methoden für SSH in einen Docker-Container und zum Ausführen von Befehlen.

Voraussetzungen

  • Ein Linux-System, auf dem Docker ausgeführt wird
  • Vorkonfigurierte Container geladen und ausgeführt
  • Zugriff auf ein Terminalfenster/eine Eingabeaufforderung (Strg + Alt +T oder Strg + Alt +F2 )
  • Ein Benutzerkonto mit sudo Privilegien

Methode 1:Verwenden Sie docker exec, um Befehle in einem Docker-Container auszuführen

Die docker exec Befehl führt einen angegebenen Befehl in einem bereits ausgeführten Container aus. Sie können damit eine SSH-Verbindung zu einem Docker-Container herstellen, indem Sie eine Bash-Shell erstellen (eine Shell, in der Sie Befehle eingeben können).

Die grundlegende Syntax für die Verwendung von docker exec um einen Befehl in Containern auszuführen ist:

docker exec [options] [container] [command]

Beginnen Sie damit, ein Docker-Image zu ziehen, falls Sie dies noch nicht getan haben. Beispielsweise können Sie Nginx laden :

sudo docker pull nginx

Führen Sie dann das Bild aus:

sudo docker run ––name nginx–test –d nginx

Alle ausgeführten Container zur Überprüfung auflisten:

sudo docker ps

Sie sollten jetzt Ihr nginx-test-Image geladen sehen.

Geben Sie Folgendes ein, um Zugriff auf diesen Docker-Container zu erhalten und Befehle auszuführen:

sudo docker exec –it nginx-test /bin/bash

Jetzt sind Sie beim nginx-test angemeldet Container. Daher werden alle von Ihnen eingegebenen Befehle in diesem Container ausgeführt. Das –i Option gibt interaktiv an , und das –t ermöglicht eine Terminal-Typisierung Schnittstelle.

Methode 2:Verwenden Sie den Docker-Attach-Befehl, um eine Verbindung zu einem laufenden Container herzustellen

Das docker attach Der Befehl verknüpft einen lokalen Eingabe-, Ausgabe- und Fehlerstrom mit einem Container. Standardmäßig wird es in einer Bash gestartet Schale . Um eine Verbindung zu einem laufenden Container herzustellen, geben Sie Folgendes ein:

sudo docker attach container_Name

Im Beispiel unten verbindet sich das System mit nginx-test Behälter:

sudo docker attach nginx-test

Sobald der Befehl ausgeführt ist, arbeiten Sie im Container. Alle von Ihnen ausgeführten Befehle wirken sich auf die virtuelle Docker-Umgebung aus.

Methode 3:Verwenden Sie SSH, um eine Verbindung zu einem Docker-Container herzustellen

Sie können sich mit SSH (Secure Shell) mit einem Docker-Container verbinden. Normalerweise wird SSH verwendet, um sich über ein Netzwerk remote mit einem Server zu verbinden. Die Technologie funktioniert genauso, wenn Sie sich mit einem virtuellen Docker-Container auf Ihrem System verbinden.

Schritt 1:Aktivieren Sie SSH auf dem System

Beginnen Sie mit der Installation und Aktivierung des SSH-Dienstes:

SSH auf Ubuntu 18.04 aktivieren:

sudo apt-get install ssh

sudo systemctl ssh start

sudo systemctl ssh enable

service ssh status

SSH auf CentOS 7 aktivieren:

yum –y install openssh-server openssh-clients

service sshd start

service sshd enable

service sshd status

Schritt 2:IP-Adresse des Containers abrufen

Rufen Sie die IP-Adresse des Containers mithilfe von docker inspect ab Befehl und Herausfiltern der Ergebnisse.

Verwenden Sie für moderne Docker-Engines den Befehl:

sudo docker inspect -f "{{ .NetworkSettings.IPAddress }}" container_name

Führen Sie für ältere Docker-Engines Folgendes aus:

docker inspect -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' container_name

Das System zeigt die IP-Adresse wie im obigen Bild zu sehen an.

Schritt 3:SSH in den Docker-Container

Pingen Sie die IP-Adresse, um sicherzustellen, dass sie verfügbar ist:

ping –c 3 172.17.0.2

Verwenden Sie das SSH-Tool, um eine Verbindung zum Image herzustellen:

ssh [email protected]

Das System sollte zur Eingabe eines Passworts des Root-Benutzers für diesen Container auffordern. Wenn dort steht Verbindung abgelehnt , ist der Container wahrscheinlich nicht für SSH bereitgestellt. Wenn sich die Eingabeaufforderung ändert, sind Sie jetzt über SSH verbunden und können Befehle im Container ausführen.


Ubuntu
  1. So installieren und konfigurieren Sie Docker Container unter Rocky Linux 8

  2. Wie führe ich einen Befehl in einem laufenden Systemd-Container aus?

  3. Wie führe ich ein Programm in einem Docker-Container aus?

  4. Wie man SSH in einen Docker-Container einfügt

  5. So führen Sie einen Befehl in einem laufenden Docker-Container aus

So überprüfen Sie, ob der Docker-Daemon oder ein Container ausgeführt wird

So führen Sie PHPMyAdmin in einem Docker-Container aus

So führen Sie Grafana in einem Docker-Container aus

So führen Sie SSH in Docker-Container ein [Schritt für Schritt]

So führen Sie Docker-Container aus

So führen Sie SSH in einen Docker-Container ein