Apakah empat mod rangkaian docker?
Empat mod rangkaian Docker ialah: 1. Mod hos, ditentukan dengan “–net=host”; 2. Mod bekas, ditentukan dengan “–net=container:NAME_or_ID”; -net=none" dinyatakan; 4. Mod jambatan.
Persekitaran pengendalian tutorial ini: sistem linux5.9.8, versi docker-1.13.1, komputer Dell G3.
Prinsip Pelaksanaan
Docker menggunakan penghubung Linux (rujuk "Teknologi Rangkaian Maya Linux") untuk memayakan jambatan kontena Docker (docker0) pada hos Apabila Docker memulakan bekas, ia akan menjadi berdasarkan rangkaian Docker Segmen rangkaian jambatan diberikan kepada bekas alamat IP, dipanggil Container-IP, dan jambatan Docker ialah get laluan lalai untuk setiap bekas. Oleh kerana bekas dalam hos yang sama semuanya disambungkan ke jambatan rangkaian yang sama, bekas boleh berkomunikasi secara langsung melalui Container-IP kontena.
Jambatan Docker dimayakan oleh hos dan bukan peranti rangkaian sebenar Ia tidak boleh 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.
Empat jenis mod rangkaian
Docker网络模式 | 配置 | 说明 |
---|---|---|
host模式 | –net=host | 容器和宿主机共享Network namespace。 |
container模式 | –net=container:NAME_or_ID | 容器和另外一个容器共享Network namespace。 kubernetes中的pod就是多个容器共享一个Network namespace。 |
none模式 | –net=none | 容器有独立的Network namespace,但并没有对其进行任何网络设置,如分配veth pair 和网桥连接,配置IP等。 |
bridge模式 | –net=bridge | (默认为该模式) |
Mod hos
Jika anda menggunakan mod hos semasa memulakan bekas, bekas itu tidak akan mendapat Ruang Nama Rangkaian bebas, tetapi akan berkongsi Ruang Nama Rangkaian dengan hos. Bekas tidak akan memayakan kad rangkaiannya sendiri, mengkonfigurasi IPnya sendiri, dsb., tetapi menggunakan IP dan port hos. Walau bagaimanapun, aspek lain bekas, seperti sistem fail, senarai proses, dsb., masih diasingkan daripada hos.
Bekas yang menggunakan mod hos boleh terus menggunakan alamat IP hos untuk berkomunikasi dengan dunia luar Port perkhidmatan di dalam bekas juga boleh menggunakan port hos. Kelebihan terbesar hos ialah prestasi rangkaian agak baik, tetapi port yang telah digunakan pada hos docker tidak boleh digunakan lagi, dan pengasingan rangkaian tidak baik.
Mod hos ditunjukkan di bawah:
mod bekas
Mod ini menentukan bekas yang baru dibuat dan An bekas sedia ada berkongsi Ruang Nama Rangkaian, bukan hos. Bekas yang baru dibuat tidak akan membuat kad rangkaiannya sendiri dan mengkonfigurasi IPnya sendiri, tetapi akan berkongsi IP, julat port, dsb. dengan bekas yang ditentukan. Begitu juga, selain daripada rangkaian, kedua-dua bekas itu juga diasingkan dalam aspek lain seperti sistem fail, senarai proses, dll. Proses kedua-dua kontena boleh berkomunikasi melalui peranti kad rangkaian lo.
Rajah mod bekas:
mod tiada
Menggunakan mod tiada, bekas Docker mempunyai Rangkaian sendiri Namespace , bagaimanapun, tidak melakukan sebarang konfigurasi rangkaian 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 hanya mempunyai rangkaian gelung balik dan tiada kad rangkaian lain. mod tiada boleh ditentukan oleh --network=none semasa mencipta bekas. Rangkaian jenis ini tidak boleh disambungkan ke Internet Rangkaian tertutup boleh memastikan keselamatan bekas.
Tiada gambarajah mod:
mod jambatan
Apabila proses Docker bermula, ia akan dibuat pada hos Jambatan maya bernama docker0 bekas Docker yang dimulakan pada hos ini akan disambungkan ke jambatan maya ini. Jambatan maya berfungsi sama dengan suis fizikal, supaya semua bekas pada hos disambungkan ke rangkaian Lapisan 2 melalui suis.
Tetapkan IP daripada subnet docker0 kepada bekas dan tetapkan alamat IP docker0 sebagai get laluan 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 pekerja pelabuhan 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.
Mod jambatan ditunjukkan di bawah:
Pembelajaran yang disyorkan: "tutorial video docker"
Atas ialah kandungan terperinci Apakah empat mod rangkaian docker?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas





Langkah -langkah untuk mengemas kini imej Docker adalah seperti berikut: Tarik tag imej terkini imej baru memadam imej lama untuk tag tertentu (pilihan) mulakan semula bekas (jika diperlukan)

Empat cara untuk keluar dari Docker Container: Gunakan Ctrl D di terminal kontena masukkan perintah keluar di terminal kontena Gunakan Docker Stop & lt; container_name & gt; Perintah Gunakan Docker Kill & lt; container_name & gt; Perintah di terminal tuan rumah (keluar kuasa)

Cara memulakan semula bekas Docker: Dapatkan ID Container (Docker PS); Hentikan bekas (Docker Stop & lt; container_id & gt;); Mulakan bekas (Docker Start & lt; container_id & gt;); Sahkan bahawa permulaan semula berjaya (Docker PS). Kaedah lain: Docker mengarang (Docker-Compose Restart) atau Docker API (lihat Dokumentasi Docker).

Kaedah untuk menyalin fail ke tuan rumah luaran di Docker: Gunakan arahan CP Docker: Jalankan Docker CP [Options] & lt; Container Path & GT; & lt; PATH HOST & GT;. Menggunakan jumlah data: Buat direktori pada tuan rumah, dan gunakan parameter -V parameter untuk memasang direktori ke dalam bekas apabila membuat bekas untuk mencapai penyegerakan fail bidirectional.

Anda boleh menanyakan nama kontena Docker dengan mengikuti langkah -langkah: Senaraikan semua bekas (Docker PS). Tapis senarai kontena (menggunakan arahan grep). Mendapat nama kontena (terletak di lajur "Nama").

Bagaimana cara menggunakan desktop Docker? Docktop Docktop adalah alat untuk menjalankan bekas Docker pada mesin tempatan. Langkah -langkah untuk digunakan termasuk: 1. Pasang desktop Docker; 2. Mulakan desktop Docker; 3. Buat imej Docker (menggunakan Dockerfile); 4. Membina imej Docker (menggunakan Docker Build); 5. Jalankan bekas Docker (menggunakan Docker Run).

Kaedah Melihat Proses Docker: 1. Docker CLI Command: Docker PS; 2. Systemd CLI Command: Sistem Status SistemCTL; 3. Docker mengarang arahan CLI: Docker-Compose PS; 4 Proses Explorer (Windows); 5. /Direktori Proc (Linux).

Langkah Penyelesaian Masalah untuk Gagal Docker Image Build: Semak Sintaks Dockerfile dan Versi Ketergantungan. Semak jika konteks binaan mengandungi kod sumber dan kebergantungan yang diperlukan. Lihat log binaan untuk butiran ralat. Gunakan pilihan sasaran untuk membina fasa hierarki untuk mengenal pasti titik kegagalan. Pastikan anda menggunakan versi terkini Enjin Docker. Bina imej dengan --t [nama imej]: mod debug untuk debug masalah. Semak ruang cakera dan pastikan ia mencukupi. Lumpuhkan Selinux untuk mengelakkan gangguan dengan proses binaan. Tanya platform komuniti untuk mendapatkan bantuan, sediakan dockerfiles dan bina deskripsi log untuk cadangan yang lebih spesifik.
