Bagikan melalui


Jaringan kontainer Windows

Berlaku untuk: Windows Server 2022, Windows Server 2019, Windows Server 2016

Penting

Silakan referensikan Docker Container Networking untuk perintah, opsi, dan sintaks jaringan Docker umum. Dengan pengecualian kasus apa pun yang dijelaskan dalam fitur dan opsi jaringan yang tidak didukung, semua perintah jaringan Docker didukung di Windows dengan sintaks yang sama seperti di Linux. Namun, tumpukan jaringan Windows dan Linux berbeda, dan dengan demikian Anda akan menemukan bahwa beberapa perintah jaringan Linux (misalnya, ifconfig) tidak didukung di Windows.

Arsitektur jaringan dasar

Topik ini memberikan gambaran umum tentang cara Docker membuat dan mengelola jaringan host di Windows. Kontainer Windows berfungsi mirip dengan komputer virtual sehubungan dengan jaringan. Setiap kontainer memiliki adaptor jaringan virtual (vNIC) yang terhubung ke sakelar virtual Hyper-V (vSwitch). Windows mendukung lima driver atau mode jaringan berbeda yang dapat dibuat melalui Docker: nat, overlay, transparent, l2bridge, dan l2tunnel. Tergantung pada infrastruktur jaringan fisik Anda dan persyaratan jaringan tunggal vs multi-host, Anda harus memilih driver jaringan yang paling sesuai dengan kebutuhan Anda.

Mengilustrasikan tumpukan jaringan Windows

Pertama kali Docker Engine berjalan, ia akan membuat jaringan NAT default, 'nat', yang menggunakan vSwitch internal dan komponen Windows bernama WinNAT. Jika ada vSwitch eksternal yang sudah ada sebelumnya pada host yang dibuat melalui PowerShell atau Hyper-V Manager, mereka juga akan tersedia untuk Docker menggunakan driver jaringan transparan dan dapat dilihat saat Anda menjalankan docker network ls perintah.

Mengilustrasikan perintah Jaringan Docker ls PowerShell

  • vSwitch internal adalah vSwitch yang tidak terhubung langsung ke adaptor jaringan pada host kontainer.
  • vSwitch eksternal adalah vSwitch yang terhubung langsung ke adaptor jaringan pada host kontainer.

Mengilustrasikan perintah Get-VMSwitch PowerShell

Jaringan 'nat' adalah jaringan default untuk kontainer yang berjalan di Windows. Setiap kontainer yang dijalankan pada Windows tanpa bendera atau argumen apa pun untuk mengimplementasikan konfigurasi jaringan tertentu akan dilampirkan ke jaringan 'nat' default, dan secara otomatis menetapkan alamat IP dari rentang IP awalan internal jaringan 'nat'. Awalan IP internal default yang digunakan untuk 'nat' adalah 172.16.0.0/16.

Manajemen Jaringan Kontainer dengan Layanan Jaringan Host

Host Networking Service (HNS) dan Host Compute Service (HCS) bekerja sama untuk membuat kontainer dan melampirkan titik akhir ke jaringan. Anda dapat berinteraksi dengan HNS melalui Modul Pembantu HNS Powershell.

Pembuatan Jaringan

  • HNS membuat sakelar virtual Hyper-V untuk setiap jaringan
  • HNS membuat kumpulan NAT dan IP sesuai kebutuhan

Pembuatan Titik Akhir

  • HNS membuat namespace jaringan per titik akhir kontainer
  • HNS/HCS menempatkan v(m)NIC di dalam namespace jaringan
  • HNS membuat port (vSwitch)
  • HNS menetapkan alamat IP, informasi DNS, rute, dll. (tunduk pada mode jaringan) ke titik akhir

Pembuatan Kebijakan

  • Untuk jaringan terjemahan alamat jaringan (NAT) default, HNS membuat aturan penerusan port WinNAT dan pemetaan dengan aturan WINDOWS Firewall ALLOW yang sesuai.
  • Untuk semua jaringan lainnya, HNS menggunakan Platform Pemfilteran Virtual (VFP) untuk pembuatan kebijakan yang mencakup penyeimbangan beban, ACL, dan enkapulasi. Untuk informasi selengkapnya tentang API HNS dan skema, lihat API layanan Host Compute Network (HCN) untuk VM dan kontainer.

Mengilustrasikan tumpukan manajemen HNS

Fitur dan opsi jaringan yang tidak didukung

Opsi jaringan berikut saat ini TIDAK didukung pada Windows:

  • Dari Windows Server 2022 dan seterusnya, kontainer Windows yang terpasang pada jaringan l2bridge mendukung tumpukan IPv6. Namun, kontainer Windows yang terpasang pada NAT dan jaringan overlay tidak mendukung komunikasi melalui tumpukan IPv6.
  • Komunikasi kontainer terenkripsi melalui IPsec.
  • Jaringan mode host .
  • Jaringan pada infrastruktur Azure virtual melalui driver jaringan transparan.
Perintah Opsi yang tidak didukung
docker run --ip6, --dns-option
docker network create --aux-address, --internal, --ip-range, --ipam-driver, --ipam-opt, --ipv6, --opt encrypted