Saya sendiri mengalami masalah ini. Tetapi dalam situasi yang berbeza, saya berharap apabila docker berjalan, kontena sentiasa boleh berjalan di latar belakang dan membenarkan saya log masuk dari jauh untuk beroperasi.
Saya menyalin artikel: Log masuk jauh SSH ke bekas
----Kandungan bermula-----
Selepas memulakan bekas, kami mungkin perlu log masuk menggunakan ssh untuk melaksanakan beberapa operasi. Untuk mencapai matlamat ini, terdapat 2 mata yang perlu dipastikan:
Bekas mesti berjalan.
pelayan openssh dimulakan.
注意:以下示例是在ubuntu/13.10中完成的
Mula-mula pastikan imej mempunyai openssh-serverperkhidmatan dipasang
docker run bukan perintah yang telah digantung (seperti menjalankan top dan meneruskan echo), ia akan keluar secara automatik. Perintah -d menetapkan detach kepada benar Menurut dokumentasi rasmi, ini bermakna arahan ini dijalankan di latar belakang, tetapi ia tidak dijalankan sepanjang masa (kami menjalankan /bin/bash dalam Terminal Linux biasa, dan ia adalah. berakhir apabila ia selesai Tidak Ia akan sentiasa menunggu jawapan, jadi tiada cara untuk menjalankannya dalam mod daemon /bin/bash).
Memang terdapat beberapa ketidakkonsistenan antara dokumen rasmi awal dan semasa di sini. Dokumen awal mengatakan bahawa -d ditetapkan untuk menjalankan bekas dalam mod daemon.
Selain itu, jika anda perlu menjalankan bash dalam bekas, jalankan terus docker run -i -t CONTAINER_NAME /bin/bash Jika anda rasa terdapat lebih banyak parameter daripada lampiran docker, anda boleh menetapkan alias untuk menyelesaikan masalah:
alias dockerbash='docker run -i -t CONTAINER_ID /bin/bash'
Selepas menetapkan alias, jalankan dockerbash terus untuk memasuki bash bekas.
Ini boleh dicapai menggunakan penyelia. Dan anda boleh memulakan berbilang perkhidmatan pada masa yang sama.
Mula-mula pasang pakej perisian dengan yum -y install supervisor dan ubah suai fail konfigurasi /etc/supervisord.conf
Tambahkan perkhidmatan yang ingin anda mulakan, seperti sshd.
Untuk maklumat khusus, anda boleh rujuk artikel ini: http://openstack.blog.163.com/blog/static/236387267201491734019283/
Adalah disyorkan untuk menambah ayat pada fail Dockerfile untuk membina imej: CMD tail -f Sekiranya terdapat arahan lain CMD arahan lain&& tail -f Semoga ia akan menjadi membantu anda
Saya sendiri mengalami masalah ini. Tetapi dalam situasi yang berbeza, saya berharap apabila docker berjalan, kontena sentiasa boleh berjalan di latar belakang dan membenarkan saya log masuk dari jauh untuk beroperasi.
Saya menyalin artikel: Log masuk jauh SSH ke bekas
----Kandungan bermula-----
Selepas memulakan bekas, kami mungkin perlu log masuk menggunakan ssh untuk melaksanakan beberapa operasi. Untuk mencapai matlamat ini, terdapat 2 mata yang perlu dipastikan:
Mula-mula pastikan imej mempunyai
openssh-server
perkhidmatan dipasangKemudian, serahkan imej:
Akhir sekali, jalankan imej dan biarkan bekas yang dijana berjalan di latar belakang:
Kini, anda boleh log masuk ke dalam bekas melalui ssh.
Jika arahan yang dinyatakan oleh
docker run
bukan perintah yang telah digantung (seperti menjalankantop
dan meneruskanecho
), ia akan keluar secara automatik. Perintah-d
menetapkan detach kepada benar Menurut dokumentasi rasmi, ini bermakna arahan ini dijalankan di latar belakang, tetapi ia tidak dijalankan sepanjang masa (kami menjalankan/bin/bash
dalam Terminal Linux biasa, dan ia adalah. berakhir apabila ia selesai Tidak Ia akan sentiasa menunggu jawapan, jadi tiada cara untuk menjalankannya dalam mod daemon/bin/bash
).Memang terdapat beberapa ketidakkonsistenan antara dokumen rasmi awal dan semasa di sini. Dokumen awal mengatakan bahawa -d ditetapkan untuk menjalankan bekas dalam mod daemon.
Selain itu, jika anda perlu menjalankan bash dalam bekas, jalankan terus
docker run -i -t CONTAINER_NAME /bin/bash
Jika anda rasa terdapat lebih banyak parameter daripada lampiran docker, anda boleh menetapkan alias untuk menyelesaikan masalah:Selepas menetapkan alias, jalankan
dockerbash
terus untuk memasuki bash bekas.Ini boleh dicapai menggunakan penyelia. Dan anda boleh memulakan berbilang perkhidmatan pada masa yang sama.
Mula-mula pasang pakej perisian dengan yum -y install supervisor dan ubah suai fail konfigurasi /etc/supervisord.conf
Tambahkan perkhidmatan yang ingin anda mulakan, seperti sshd.
Untuk maklumat khusus, anda boleh rujuk artikel ini: http://openstack.blog.163.com/blog/static/236387267201491734019283/
docker run --attach=stdin -d image bash, parameter -d mematikan stdin secara lalai.
Adalah disyorkan untuk menambah ayat pada fail Dockerfile untuk membina imej:
CMD tail -f
Sekiranya terdapat arahan lain
CMD arahan lain&& tail -f
Semoga ia akan menjadi membantu anda