Ich fand die Dokumentation zum Anhängen und Abhängen ein wenig kompliziert.
Ich habe verschiedene Optionen ausprobiert, um einen Container zu starten und mich von einem anderen Terminal aus anzuhängen. Die folgende Tabelle fasst die Ergebnisse zusammen:
Es hat die folgende Spaltenbedeutung:
-d
- wird die Option docker run -d
verwendet oder nicht
--sig-proxy
- wird die Option docker attach --sig-proxy=true|false
verwendet oder nicht
--no-stdin
- wird die Option docker attach [--no-stdin]
verwendet oder nicht
keys
- ob Docker Eingabetasten an die containerisierte Anwendung sendet oder nicht
^C
- was passiert, wenn der Benutzer Strg+C
drückt
^P ^Q
- was passiert, wenn der Benutzer Strg+P Strg+Q
drückt
Es gibt ein paar Erkenntnisse:
-
Das Anhängeverhalten hängt nicht von der -d
-Option ab, sondern von -i
und -t
-
Sie können die Anhangsspalten entweder als Verbindung zu einem Container von einem anderen Terminal aus betrachten (z.B. docker attach --sig-proxy=false
und Sie können die Verbindungsoptionen variieren) oder von dem aktuellen Terminal aus (aber Sie können die Verbindungsoptionen nicht variieren; --sig-proxy=true
)
-
Das Abhängen hängt von den laufenden Optionen ab und kann auf drei Arten erfolgen:
docker run [-i|-t]
und verbinden Sie von einem anderen Terminal aus mit docker attach --sig-proxy=false CONT
-> drücken Sie Strg+C
docker run -it
und verbinden Sie von einem anderen Terminal aus mit docker attach
-> drücken Sie Strg+P Strg+Q
docker run -it
und verbinden Sie von einem anderen Terminal aus mit docker attach --no-stdin
-> drücken Sie Strg+C
(natürlich sollten Sie andere notwendige Argumente für Befehle wie einen Container-Namen oder ein Bild bereitstellen)
P.S. Ich habe verschiedene Szenarien mit -i
und -t
(nur eine davon) ausprobiert, aber keinen Unterschied im Verhalten festgestellt. Ich habe gesehen, dass @ken-cochrane folgendes bereitstellt:
docker run -i kann nicht mit ^P^Q abgelöst werden; wird die Standard-Eingabe stören
aber ich konnte dies nicht reproduzieren.