Perbezaan: 1. Bekas dalam mod hos dan hos berkongsi "Ruang Nama Rangkaian"; 2. Bekas yang dibuat dalam mod Bekas akan berkongsi julat IP dan port dengan bekas yang ditentukan; di luar bekas Fungsi rangkaian; 4. Mod lalai jambatan memberikan IP kepada setiap bekas.
Persekitaran pengendalian tutorial ini: sistem linux7.3, versi docker-1.13.1, komputer Dell G3.
1. Empat mod rangkaian
2. Prinsip pelaksanaan
Docker menggunakan penghubung Linux untuk memayakan jambatan bekas Docker (docker0) pada hos. ia akan Segmen rangkaian jambatan Docker diberikan kepada bekas alamat IP, dipanggil Container-IP, dan jambatan Docker ialah pintu masuk lalai setiap bekas. Oleh kerana bekas dalam hos yang sama semuanya disambungkan ke jambatan rangkaian yang sama, bekas boleh berkomunikasi secara terus melalui Container-IP bekas
Jambatan Docker diviralkan oleh hos dan tidak benar-benar wujud Peranti rangkaian tidak dapat ditangani oleh rangkaian luaran, yang juga bermakna rangkaian luaran tidak boleh mengakses bekas melalui Container-IP langsung. Jika kontena ingin diakses dari luar, anda boleh memetakan port kontena ke hos (pemetaan port), iaitu, membolehkannya melalui parameter -p atau -P apabila docker run mencipta bekas dan gunakan [host IP ] apabila mengakses bekas: [Port Kontena] Akses kontena
1.Mod hos
Jika anda menggunakan mod hos semasa memulakan bekas, bekas itu tidak akan dapatkan Ruang Nama Rangkaian sebaliknya, ia berkongsi Ruang Nama Rangkaian dengan hos Bekas itu tidak akan memayakan kad rangkaiannya sendiri, mengkonfigurasi IPnya sendiri, dsb. Sebaliknya, ia akan menggunakan IP dan port hos
. Bekas menggunakan mod hos boleh menggunakan hos secara langsung Alamat IP hos berkomunikasi dengan dunia luar Port perkhidmatan di dalam bekas juga boleh menggunakan port hos tanpa NAT , tetapi port yang sudah digunakan pada hos docker tidak boleh digunakan lagi Pengasingan rangkaian tidak baik
2 Mod bekas
Bekas yang dibuat tidak akan cipta kad rangkaiannya sendiri dan konfigurasikan IPnya sendiri, tetapi akan berkomunikasi dengan bekas yang ditentukan IP Kongsi, julat port
Mod ini menentukan bahawa bekas yang baru dibuat berkongsi Ruang Nama Rangkaian dengan bekas sedia ada, dan bukannya berkongsinya dengan tuan rumah. Begitu juga, selain daripada rangkaian, kedua-dua bekas itu juga diasingkan dalam aspek lain seperti sistem fail, senarai proses, dll. Proses dua bekas boleh berkomunikasi melalui peranti kad rangkaian lo
3.Mod Tiada
Mod ini mematikan fungsi rangkaian bekas
Gunakan tiada mod , bekas Docker mempunyai Ruang Nama Rangkaian mereka sendiri, tetapi tiada konfigurasi rangkaian dilakukan untuk bekas Docker. Dengan kata lain, kontena Docker ini tidak mempunyai kad rangkaian, IP, penghalaan dan maklumat lain. Kita perlu menambah kad rangkaian, mengkonfigurasi IP, dsb. pada bekas Docker sendiri
Dalam mod rangkaian ini, bekas itu hanya mempunyai rangkaian gelung balik lo dan tiada kad rangkaian lain. tiada mod boleh ditentukan melalui –network=none semasa mencipta bekas. Rangkaian jenis ini tidak boleh disambungkan ke Internet Rangkaian tertutup boleh memastikan keselamatan bekas
Satu mesin tanpa rangkaian adalah sangat selamat dan boleh menyimpan data dengan selamat tanpa diserang
4.Mod jambatan (lalai)
Mod ini akan memperuntukkan dan menetapkan IP untuk setiap bekas, dan menyambungkan bekas ke jambatan maya docker0, melalui jambatan docker0 dan Hubungan antara iptables konfigurasi jadual nat dan hos
Apabila proses Docker bermula, jambatan maya bernama docker0 akan dibuat pada hos dan bekas Docker yang dimulakan pada hos ini akan bersambung ke atasan jambatan maya ini. Jambatan maya berfungsi sama seperti suis fizikal, supaya semua bekas pada hos disambungkan ke rangkaian lapisan 2 melalui suis
Tetapkan IP daripada subnet docker0 kepada bekas, dan tetapkan docker0 IP alamat ialah gerbang lalai kontena. Buat sepasang peranti pasangan veth kad rangkaian maya pada hos Docker meletakkan satu hujung peranti pasangan veth dalam bekas yang baru dibuat dan namakannya eth0 (kad rangkaian kontena) dan hujung satu lagi dalam hos dengan nama yang serupa. seperti vethxxx Nama dan tambah peranti rangkaian ini pada jambatan docker0. Anda boleh melihatnya melalui arahan brctl show
Mod jambatan ialah mod rangkaian lalai docker Jika anda tidak menulis parameter –net, ia adalah mod jambatan. Apabila menggunakan docker run -p, docker sebenarnya membuat peraturan DNAT dalam iptables untuk melaksanakan fungsi penghantaran port. Anda boleh menggunakan iptables -t nat -vnL untuk melihat
Ringkasnya
Hos: berkongsi ruang nama rangkaian/tindanan protokol rangkaian, perkongsian IP dan perkongsian julat port dengan hos.
Bekas: Berbilang bekas berkongsi ruang nama rangkaian, berbilang bekas berkongsi IP dan julat port yang sama
Tiada: Ruang serba lengkap, tiada kad rangkaian, tiada sambungan rangkaian diperlukan
Bridge: Bridge, mod lalai, mencipta bekas tanpa menentukan mod rangkaian Mod ini digunakan secara lalai digunakan sebagai kandungan "LAN" Gerbang pelayan akhirnya berkomunikasi dengan kad rangkaian hos Pada masa yang sama, IP/port kontena dipetakan melalui peraturan IPtables untuk interaksi dengan kad rangkaian hos
Pembelajaran yang disyorkan: "tutorial video buruh pelabuhan》
Atas ialah kandungan terperinci Apakah perbezaan antara empat mod rangkaian docker?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!