Saya memiliki pengaturan tempat saya menjalankan semua bagian situs web saya dalam wadah buruh pelabuhan. Nginx saya yang mendengarkan pada port 80 dan 443 dijalankan dalam sebuah wadah.
363292a98545 scivm/nginx-django-scivmcom:latest /usr/bin/supervisord 12 days ago Ghost 0.0.0.0:40001->22/tcp, 88.198.57.112:443->443/tcp, 88.198.57.112:80->80/tcp lonely_feynmann
Saya ingin mengatur proxy ke layanan di wadah lain. Kontainer ini terikat ke port 3000 pada host:
b38c8ef72d0a mazzolino/strider-dind:latest wrapdocker /usr/bin/ 41 minutes ago Up 41 minutes 0.0.0.0:3000->3000/tcp, 22/tcp, 27017/tcp distracted_einstein
Iptables saya pada host buruh pelabuhan terlihat seperti ini:
root@Ubuntu-1204-precise-64-minimal /var/run # iptables -L
Chain INPUT (policy ACCEPT) target prot opt source destination
ACCEPT all -- anywhere anywhere
ACCEPT all -- anywhere anywhere ctstate RELATED,ESTABLISHED
ACCEPT tcp -- anywhere anywhere tcp dpt:ssh
ACCEPT tcp -- anywhere anywhere tcp dpt:http
ACCEPT tcp -- anywhere anywhere tcp dpt:https
ACCEPT tcp -- anywhere anywhere tcp dpt:8000
DROP all -- anywhere anywhere
Chain FORWARD (policy ACCEPT)
target prot opt source destination
ACCEPT all -- anywhere anywhere
ACCEPT all -- anywhere anywhere
ACCEPT all -- anywhere anywhere ctstate RELATED,ESTABLISHED
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Dari dalam wadah, saya tidak dapat terhubung ke port 3000 pada mesin host karena konfigurasi iptables.
Saya tidak ingin membuka port 3000 ke internet publik.
Apakah ada cara untuk membuka jembatan langsung antara kontainer dan host pada port 3000?
Atau haruskah saya memodifikasi iptables saya untuk menerima dari kisaran ip buruh pelabuhan?
sumber
docker restart your_container
) harus menyimpan alamat IP itu. Hanya jika Anda menjalankan wadah baru berdasarkan gambar yang diberikan, itu akan mendapatkan IP baru (docker run -d image command
).Jawaban Elias benar, tetapi tautannya panjang dan membingungkan. Berikut ringkasan sederhana:
Pertama, jalankan wadah yang akan ditautkan, dan beri nama:
Kemudian jalankan wadah lain, tautkan ke wadah pertama:
Tautan dari wadah pertama ke wadah kedua dimasukkan
/etc/hosts
. Jadi Anda bisa menggunakannya seperti nama host. Sebagai contoh:sumber