Nextcloud als Docker Container mit Traefik - Vollständiges Tutorial
Inhaltsverzeichnis:
Das Herstellen einer Verbindung zu einem laufenden Docker-Container ist hilfreich, wenn Sie sehen möchten, was im Container geschieht. Wenn der Docker-Container nicht wie erwartet funktioniert, können Sie eine Verbindung zum Container herstellen oder eine Shell zum Container
ps
und Befehle wie
ps
oder
top
ausführen. Sie können auch den Container betreten, neue Pakete installieren und daraus ein neues Docker-Image erstellen.
In diesem Lernprogramm wird erläutert, wie Sie eine Verknüpfung zum Hauptausführungsprozess des Containers herstellen und eine Shell zu einem ausgeführten Container erstellen.
An einen Container anhängen
Obwohl es möglich ist, mehrere Prozesse in einem Container auszuführen, wird in den meisten Docker-Containern nur ein einziger Prozess ausgeführt. Der Befehl, der beim Starten eines Containers ausgeführt wird, wird mit der
ENTRYPOINT
und / oder
RUN
.
Mit dem
docker attach
Befehl "
docker attach
können Sie Ihr Terminal an den ausgeführten Container anhängen. Dies ist nützlich, wenn Sie in Echtzeit sehen möchten, was in der Standardausgabe geschrieben ist, oder den Prozess interaktiv steuern möchten.
Um besser zu verstehen, wie der Befehl
attach
funktioniert, lassen Sie uns einen neuen getrennten Nginx-Container mit dem offiziellen Nginx-Image ausführen.
docker container run --name my_nginx -d -p 8080:80 nginx
Die Option
-p 8080:80
weist Docker an, Port 8080 des Containers an Port 80 auf dem Hostcomputer zu binden.
Listen Sie die Container auf, um sicherzustellen, dass der Container "my_nginx" ausgeführt wird:
docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 8e1c4974a8d8 nginx "nginx -g 'daemon of…" 3 minutes ago Up 2 seconds 0.0.0.0:8080->80/tcp my_nginx
Mit der ID oder dem Namen des Containers an den Container anhängen:
docker container attach my_nginx
Der Standardbefehl des Nginx-Image, der ausgeführt wird, wenn Sie den Container ausführen, ist auf
CMD
. Wenn Sie den Befehl attach ausführen, stellt Ihr Terminal eine Verbindung zum
nginx
Prozess her.
Öffnen Sie
127.0.0.1:8080
in Ihrem Browser und Sie können die Ausgabe des Nginx-Prozesses in Echtzeit verfolgen.
192.168.33.1 - - "GET / HTTP/1.1" 200 612 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36" "-" 192.168.33.1 - - "GET /favicon.ico HTTP/1.1" 404 555 "http://192.168.33.71:8080/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36" "-"
Um Zugriff auf die Containerprotokolle zu erhalten, sollten Sie den Befehl
docker logs
.
Verwenden Sie die Tastenkombination
CTRL-p
CTRL-q
um sich vom Container zu lösen, ohne ihn anzuhalten. Durch Drücken von
CTRL-c
der Container
CTRL-c
.
Wenn die laufenden Prozesse, an die Sie anhängen, Eingaben akzeptieren, können Sie Anweisungen an sie senden.
Holen Sie sich eine Shell in einen Container
Mit dem Befehl
docker exec
können Sie Befehle in einem laufenden Container ausführen.
Um zu sehen, wie der Befehl
exec
funktioniert und wie er zum Eingeben der Container-Shell verwendet werden kann, müssen Sie zunächst einen neuen Container starten. Wir werden das offizielle MySQL-Image verwenden:
docker container run --name my_mysql -d mysql
Dadurch wird ein Container mit dem Namen "my_mysql" erstellt.
Führen Sie den folgenden Befehl aus, um einen Befehl im Container auszuführen:
docker container exec -it my_mysql ls /var
Die Option
-i
steht für interaktiv und
-t
weist Docker an, ein Pseudo-TTY-Gerät zuzuweisen. Der Befehl
ls
listet alle Dateien und Verzeichnisse im Verzeichnis
/var
Containers auf:
backups cache lib local lock log mail opt run spool tmp
Um eine Shell in den Container zu bekommen, dh in den Container einzutreten, starten Sie eine neue Shell-Sitzung, indem Sie die Shell-Binärdatei ausführen. Sie können
sh
,
bash
oder jede andere im Bild enthaltene Shell verwenden.
Mit dem folgenden Befehl wird eine neue Bash-Sitzung im Container erstellt:
docker container exec -it my_mysql /bin/bash
Ihre Eingabeaufforderung ändert sich und zeigt an, dass Sie jetzt an der Container-Shell arbeiten.
Von hier aus können Sie Befehle wie auf jedem anderen Linux-Server ausführen. Um zum Beispiel eine Liste der aktuellen Umgebungsvariablen zu erhalten, geben Sie
env
:
env
Die Ausgabe sieht ungefähr so aus:
HOSTNAME=e0214d97e0fe MYSQL_ROOT_PASSWORD=my-secret-pw PWD=/ HOME=/root MYSQL_MAJOR=8.0 GOSU_VERSION=1.7 MYSQL_VERSION=8.0.17-1debian9 TERM=xterm SHLVL=1 PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin _=/usr/bin/env
Fazit
Mit den Befehlen
docker exec
und
docker attach
können Sie eine Verbindung zu einem laufenden Container herstellen. Verwenden Sie den Befehl
exec
um eine interaktive Shell für einen Container zu
exec
und eine neue Shell-Sitzung zu starten. Der Befehl attach hängt Ihr Terminal an einen laufenden Container an.
Fehler beim Herstellen einer Verbindung zu einem Windows-Dienstfehler in Windows 10

Wenn Sie eine Verbindung mit einer Windows-Dienstnachricht erhalten bedeutet, dass Windows keine Verbindung zum Systemdienst herstellen kann, um seine Befehle auszuführen.
Der Math-Eingabebereich verwendet den in Windows 7 integrierten mathematischen Erkenner, um handschriftliche mathematische Ausdrücke zu erkennen. Sie können es dann problemlos mit Textverarbeitungsprogrammen oder Computertabellen verwenden. Der Math-Eingabebereich ist für die Verwendung mit einem Tablet-Stift auf einem Tablet PC vorgesehen, Sie können ihn jedoch mit jedem Eingabegerät wie einem Touchscreen oder sogar einer Maus verwenden.

Der Math-Eingabebereich verwendet den in Windows integrierten Mathematik-Erkenner 7 um handgeschriebene mathematische Ausdrücke zu erkennen. Sie können es dann problemlos mit Textverarbeitungsprogrammen oder Computertabellen verwenden.
Herstellen einer Verbindung zu einem FTP-Server mithilfe von macfusion -

Erfahren Sie, wie Sie vom Finder über Macfusion aus eine Verbindung zu einem FTP-Server auf einem Mac herstellen.