Ich denke, das sollte von der Situation abhängen. Nehmen Sie den folgenden Container als Beispiel:
# docker run -it -d ubuntu
91262536f7c9a3060641448120bda7af5ca812b0beb8f3c9fe72811a61db07fc
# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
91262536f7c9 ubuntu "/bin/bash" vor 5 Sekunden An 4 Sekunden serene_goldstine
(1) Verwenden Sie "docker attach
" um den Container anzuhängen:
Da "docker attach
" kein neues tty zuweisen wird, sondern das Original-TTY wiederverwendet, wird bei Ausführung des Befehls exit
der laufende Container beendet:
# docker attach 91262536f7c9
exit
exit
# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
91262536f7c9 ubuntu "/bin/bash" vor 39 Minuten Beendet (0) vor 3 Sekunden serene_goldstine
Also, es sei denn, Sie wollen wirklich, dass der laufende Container beendet wird, sollten Sie Strg+P + Strg+Q verwenden.
(2) Verwenden Sie "docker exec
"
Da "docker exec
" ein neues tty zuweisen wird, denke ich, dass Sie exit
anstelle von Strg+P + Strg+Q verwenden sollten.
Im Folgenden wird Strg+P + Strg+Q verwendet, um den Container zu beenden:
# docker exec -it 91262536f7c9 bash
root@91262536f7c9:/# ps -aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.0 18160 1908 ? Ss+ 04:03 0:00 /bin/bash
root 15 0.0 0.0 18164 1892 ? Ss 04:03 0:00 bash
root 28 0.0 0.0 15564 1148 ? R+ 04:03 0:00 ps -aux
root@91262536f7c9:/# echo $$
15
Dann melden Sie sich erneut im Container an, Sie werden sehen, dass der bash
Prozess aus dem vorherigen docker exec
Befehl noch aktiv ist (PID ist 15):
# docker exec -it 91262536f7c9 bash
root@91262536f7c9:/# ps -aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.0 18160 1908 ? Ss+ 04:03 0:00 /bin/bash
root 15 0.0 0.0 18164 1892 ? Ss+ 04:03 0:00 bash
root 29 0.0 0.0 18164 1888 ? Ss 04:04 0:00 bash
root 42 0.0 0.0 15564 1148 ? R+ 04:04 0:00 ps -aux
root@91262536f7c9:/# echo $$
29