Saya ingin membuat aliran infrastruktur berikut:
Bagaimana itu bisa dicapai dengan menggunakan Docker?
sumber
Saya ingin membuat aliran infrastruktur berikut:
Bagaimana itu bisa dicapai dengan menggunakan Docker?
Pertama, Anda perlu menginstal server SSH di gambar yang ingin Anda ssh-in. Anda dapat menggunakan gambar dasar untuk semua penampung Anda dengan server ssh terpasang. Kemudian Anda hanya perlu menjalankan setiap kontainer yang memetakan port ssh (default 22) ke satu port host (Server Jarak Jauh di gambar Anda), menggunakan -p <hostPort>:<containerPort>
. yaitu:
docker run -p 52022:22 container1
docker run -p 53022:22 container2
Kemudian, jika port 52022 dan 53022 host dapat diakses dari luar, Anda dapat langsung ssh ke container menggunakan ip host (Server Jarak Jauh) yang menentukan port di ssh dengan -p <port>
. Yaitu:
ssh -p 52022 myuser@RemoteServer
-> SSH ke container1
ssh -p 53022 myuser@RemoteServer
-> SSH ke container2
Perhatian : jawaban ini mempromosikan alat yang saya tulis.
Jawaban yang dipilih di sini menyarankan untuk menginstal server SSH ke setiap gambar. Secara konseptual, ini bukanlah pendekatan yang tepat ( https://docs.docker.com/articles/dockerfile_best-practices/ ).
Saya telah membuat server SSH dalam container yang dapat Anda 'tempel' ke container apa pun yang sedang berjalan. Dengan cara ini Anda dapat membuat komposisi dengan setiap penampung. Satu-satunya persyaratan adalah wadah tersebut memiliki bash.
Contoh berikut akan memulai server SSH yang diekspos pada port 2222 mesin lokal.
Untuk petunjuk dan dokumentasi lebih lanjut, lihat: https://github.com/jeroenpeeters/docker-ssh
sumber
File-file ini akan berhasil membuka sshd dan menjalankan layanan sehingga Anda dapat melakukan ssh secara lokal. (Anda menggunakan cyberduck bukan?)
Dockerfile
supervisord.conf
untuk membangun / menjalankan mulai daemon / melompat ke shell.
sumber
Saya kira itu mungkin. Anda hanya perlu menginstal server SSH di setiap penampung dan mengekspos porta pada host. Gangguan utama akan mempertahankan / mengingat pemetaan port to container.
Namun, saya harus mempertanyakan mengapa Anda ingin melakukan ini. SSH'ng ke dalam container seharusnya cukup langka sehingga tidak merepotkan untuk melakukan ssh ke host kemudian gunakan docker exec untuk masuk ke dalam container.
sumber
Buat gambar buruh pelabuhan dengan
openssh-server
prainstal:Dockerfile
Bangun gambar menggunakan:
Jalankan
test_sshd
wadah:Ssh ke penampung Anda:
Sumber: https://docs.docker.com/engine/examples/running_ssh_service/#build-an-eg_sshd-image
sumber
ssh root@localhost -p <ssh_host_port>
mengikuti petunjuk di sini