Bagaimana cara keluar dari docker exec setelah container keluar?

Bagaimana cara keluar dari wadah docker yang telah saya sambungkan dengan anggun docker exec -ti, setelah buruh pelabuhan yang saya sambungkan keluar?

Jika saya keluar dari wadah asli, shell yang menjalankan docker exec perintah digantung, dan satu-satunya cara yang dapat saya temukan untuk keluar kembali ke cangkangnya adalah dengan membunuh docker exec perintah dari terminal lain.

Apakah ada cara yang lebih anggun?

Ini terjadi jika saya memulai wadah dengan --rm atau tidak.

Saya menjalankan docker 19.03.12 di bawah bash 5.0.16 di gnome-terminal 3.26.3 di Ubuntu 20.04.

Untuk melepaskan tty tanpa keluar dari shell, gunakan urutan escape CTRL+P diikuti oleh CTRL+Q. Lebih detail di sini.

Info tambahan dari sumber ini:

Docker run-t-i dapat dilepas dengan Ctrl+P & Ctrl+Q sequece dan disambungkan kembali dengan docker melampirkan

Docker run-i tidak dapat dilepaskan dengan Ctrl+P & Ctrl+Q urutan; akan mengganggu stdin

docker run molibdat tidak dapat dilepaskan dengan Ctrl+P & Ctrl+Q; dapat SIGKILL klien; dapat memasang kembali dengan docker melampirkan

Semoga ini bisa membantu.

Anda pertama kali menjalankan kontainer dengan terpisah mode, bukan latar depan:

docker run --name mynginx -p 80:80 -d nginx

Kemudian Anda dapat melampirkannya dengan docker exec:

docker exec -it mynginx /bin/sh

Ingatlah bahwa jika Anda ingin melampirkan ke wadah untuk memeriksa, Anda harus menentukan --interactive , -i dan --tty , -t opsi, karena penampung Anda sudah menjalankan proses utama Anda di latar belakang dari sebelumnya docker run -d perintah.
Dengan begitu ketika Anda selesai memeriksa wadah anda, anda dapat keluar dengan anggun dengan ctrl+d atau logout perintah, saat Anda keluar dari shell biasa

@ Khushal memberi saya jawabannya... semacam itu. Dalam kasus saya, Ctrl+P & Ctrl+Q masih tidak berfungsi bahkan saat menelepon run dengan -t, tapi polos tua Ctrl+C lakukan. Untuk memberikan beberapa konteks, saya bermain dengan wadah buruh pelabuhan peternak, jadi YMMV.

Untuk meringkas, buat wadah dengan:docker run -t -d --name=thingy ...

Melampirkan seperti biasa dengan:docker attach thingy

Melepaskan dengan baik kuno Ctrl+C.

Ngomong-ngomong, -t, menurut the docs, mengalokasikan pseudo-TTY.

Pertanyaan ini telah ditanyakan sebelumnya, silakan merujuk ke: How do you attach and detach from Docker's process? - Stack Overflow

Di lingkungan Debian saya sendiri yang menjalankan 19.03.11, instance exec segera keluar dan mengembalikan prompt shell saya segera setelah container keluar. Dapatkah anda memberikan rincian lebih lanjut untuk mereproduksi masalah Anda?

@ BMitch mengedit pertanyaan untuk menambahkan tanda ‘- ti’; maaf karena mengabaikannya!

Terima kasih @ user929169-saya tidak tahu istilah yang tepat untuk digunakan. Saya tidak bisa menutup ini sebagai duplikat karena jawabannya ada di situs lain. Posting ini sebagai jawabannya dan Anda akan mendapatkan poin.