Ubuntu
容器退出後如何退出 docker exec?
在我連接到的 docker 退出後,如何優雅地退出我已連接到 using 的 docker 容器
docker exec -ti
?如果我退出原始容器,執行該
docker exec
命令的 shell 將被掛起,而我能找到返回其 shell 的唯一方法是docker exec
從另一個終端終止該命令。有沒有更優雅的方式?
無論我是否啟動容器,都會發生這種情況
--rm
。我在 Ubuntu 20.04 的 gnome-terminal 3.26.3 中的 bash 5.0.16 下執行 docker 19.03.12。
要在不退出 shell 的情況下分離 tty,請使用轉義序列
CTRL
+P
後跟CTRL
+Q
。更多細節在這裡。來自此來源的附加資訊:
docker run -t -i → 可以用
Ctrl
+P
&Ctrl
+Q
sequece 分離並用 docker attach 重新連接docker run -i → 不能用
Ctrl
+P
&Ctrl
+Q
序列分離;會破壞標準輸入docker run → 不能用
Ctrl
+P
&Ctrl
+分離Q
;可以 SIGKILL 客戶端;可以使用 docker attach 重新附加希望這可以幫助。
您首先以分離模式執行容器,而不是前台:
docker run --name mynginx -p 80:80 -d nginx
然後您可以使用docker exec附加到它:
docker exec -it mynginx /bin/sh
請記住,如果您想附加到容器進行檢查,則必須指定
--interactive , -i
和--tty , -t
選項,因為您的容器已經在您之前的docker run -d
命令的後台執行您的主程序。這樣,當您完成檢查容器時,您可以使用or命令優雅地退出它,就像您從普通 shell 退出一樣
ctrl+d``logout