menghubungkan dari wadah docker ke host docker

Saya memiliki pengaturan di mana saya menjalankan semua bagian situs web saya dalam wadah docker. Nginx saya yang mendengarkan pada port 80 dan 443 berjalan dalam 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. Wadah 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 di host docker terlihat seperti ini:

root@Ubuntu-1204-precise-64-minimal /var/run # iptables -LChain INPUT (policy ACCEPT) target     prot opt source               destination         ACCEPT     all  --  anywhere             anywhere            ACCEPT     all  --  anywhere             anywhere             ctstate RELATED,ESTABLISHEDACCEPT     tcp  --  anywhere             anywhere             tcp dpt:sshACCEPT     tcp  --  anywhere             anywhere             tcp dpt:httpACCEPT     tcp  --  anywhere             anywhere             tcp dpt:httpsACCEPT     tcp  --  anywhere             anywhere             tcp dpt:8000DROP       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,ESTABLISHEDChain 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 wadah dan host di port 3000?

Atau haruskah saya memodifikasi iptables saya untuk menerima dari rentang IP docker?

Yang Anda butuhkan hanyalah Docker kemampuan tautan [ditinggalkan]

Singkirkan saja semua hal rumit yang anda coba lakukan dan mulailah menggunakan wadah bernama dan kemudian tautkan satu sama lain.

Jawaban Elias benar, tetapi tautannya panjang dan membingungkan. Berikut adalah ringkasan sederhana:

Pertama, jalankan wadah untuk ditautkan, dan beri nama:

sudo docker run -d --name db training/postgres

Kemudian jalankan wadah lain, menghubungkannya ke wadah pertama:

sudo docker run -d -P --name web --link db:db training/webapp python app.py

Tautan dari wadah pertama ke wadah kedua dimasukkan ke dalam /etc/hosts. Jadi Anda bisa menggunakannya seperti nama host. Misalnya:

sudo docker run --name web --link db:db training/webapp ping db