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.
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.
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?
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.