Saya mencoba menjalankan wadah Docker sebagai router antara --internal
jaringan Docker pribadi ( ) dan jaringan yang telah ditentukan host
. Ini berarti wadah perlu memiliki dua antarmuka jaringan: Satu antarmuka "luar", yang dapat mengakses semua alamat IP host, dan satu antarmuka "di dalam", yang bertindak sebagai gateway untuk kontainer di jaringan Docker internal
Wadah router itu sendiri akan lalu lintas jaringan NAT dari / ke wadah.
Saya belum menemukan cara untuk mengkonfigurasi Docker untuk menjalankan wadah dengan dua antarmuka tersebut. Yang paling dekat yang bisa saya dapatkan adalah memiliki dua bridge
antarmuka yang ditugaskan, yang tidak persis apa yang saya butuhkan.
Mencoba terhubung secara manual menghasilkan kesalahan:
# docker network connect host root_router_1
Error response from daemon: Container cannot be disconnected from host network or connected to host network
Adakah yang bisa menunjukkan kepada saya bagaimana mencapai ini, lebih disukai bahkan dengan Docker Compose?
sumber
Jawaban:
Menurut T&J ini di github :
sumber
network_mode
tidak berfungsi jika Anda memerlukan sesuatu yang terhubung ke jaringan internal dan jaringan host. Tampaknya gila bahwa kita tidak dapat menemukan solusi yang jelas dan bagus untuk masalah ini.Docker tidak memungkinkan untuk menghubungkan wadah ke jaringan host dan jaringan jembatan Docker lainnya secara bersamaan. Saya akan mencoba mengilustrasikan alasannya dengan sebuah contoh:
Dengan pengaturan di atas, dugaan saya adalah bahwa jaringan host terlihat dari C2, dan saya kira inilah alasan mengapa Docker secara otomatis mencegah kami dari mengekspos jaringan host secara tidak sengaja ke wadah yang tidak ditentukan oleh host.
Yang sedang berkata, jika kita memiliki satu set kontainer, dan kita ingin semuanya saling berhubungan, dengan hanya satu kontainer yang memiliki akses ke jaringan host, pendekatan saya adalah:
EDIT: Kami masih harus menyesuaikan kebijakan iptables sedemikian rupa sehingga C1 dapat dijangkau dari sisa wadah (lihat https://docs.docker.com/network/iptables/ )
sumber