Saya ingin ssh atau bash menjadi wadah docker yang sedang berjalan. Silakan, lihat contoh:
$ sudo docker run -d webserverwebserver is clean image from ubuntu:14.04$ sudo docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES665b4a1e17b6 webserver:latest /bin/bash ... ... 22/tcp, 80/tcp loving_heisenberg
Sekarang saya ingin mendapatkan sesuatu seperti ini (masuk ke wadah yang sedang berjalan):
$ sudo docker run -t -i webserver (atau mungkin 665b4a1e17b6 sebaliknya) $ root@665b4a1e17b6:/#
Namun ketika saya menjalankan baris di atas saya mendapatkan ID kontainer baru:
$ root@42f1e37bd0e5:/#
Saya menggunakan Vagrant dan saya ingin mendapatkan perilaku yang sama seperti vagrant ssh.
Untuk Docker versi 1.3 atau yang lebih baru: Terima kasih kepada pengguna WiR3D siapa yang menyarankan cara lain untuk mendapatkan cangkang wadah. Jika kita menggunakan attach kita dapat menggunakan hanya satu contoh dari shell. Jadi jika kita ingin membuka terminal baru dengan contoh baru dari shell kontainer, kita hanya perlu menjalankan berikut:
$ sudo docker exec -i -t 665b4a1e17b6 /bin/bash #by ID
Pada dasarnya, jika wadah Docker mulai menggunakan /bin/bash perintah Anda dapat mengaksesnya menggunakan attach. Jika tidak, maka Anda perlu menjalankan perintah untuk membuat instance Bash di dalam wadah menggunakan exec.
Juga untuk keluar dari Bash tanpa meninggalkan Bash berjalan dalam proses nakal:
Meskipun penulis pertanyaan secara khusus mengatakan bahwa mereka tertarik pada wadah yang sedang berjalan, perlu juga dicatat bahwa jika wadah tidak berjalan, tetapi Anda ingin menjalankannya untuk melihat-lihat Anda dapat menjalankan: