1.1 Sieciowy sterownik Bridge
Sieciowe sterowniki Docker pozwalają kontenerom na interakcję między sobą i z zewnętrznymi sieciami. Docker oferuje kilka sieciowych sterowników, każdy z nich ma swoje cechy i jest przeznaczony do konkretnych scenariuszy użycia. W tym wykładzie omówimy cztery podstawowe sieciowe sterowniki: bridge, host, none i overlay.
Sieciowy sterownik bridge jest domyślnym sieciowym sterownikiem w Docker. Tworzy prywatną wewnętrzną sieć, w której kontenery mogą komunikować się między sobą. Ta sieć jest izolowana od zewnętrznej sieci hosta.
Cechy:
- Kontenery podłączone do sieci
bridge
mogą komunikować się ze sobą poprzez adresy IP. - Zewnętrzne sieci nie mogą bezpośrednio komunikować się z kontenerami w sieci
bridge
, jeśli nie jest skonfigurowane przekierowanie portów. - Prostota użycia dla lokalnych scenariuszy rozwoju i testowania.
Przykład użycia:
Przy tworzeniu kontenera bez określenia sieci, jest on automatycznie podłączany do sieci bridge
.
docker run -d --name my_container nginx
Do konfiguracji przekierowania portu używa się flagi -p
.
docker run -d -p 8080:80 --name my_container nginx
1.2 Sieciowy sterownik Host
Sieciowy sterownik host
pozwala kontenerowi na bezpośrednie korzystanie ze stosu sieciowego maszyny hosta. To oznacza, że kontener będzie miał ten sam adres IP, co host, i będzie mógł używać wszystkich interfejsów sieciowych hosta.
Cechy:
- Kontenery, które używają sieciowego sterownika
host
, działają szybciej dzięki zmniejszeniu narzutu wirtualizacji sieci. - Kontenery mają dostęp do tych samych interfejsów sieciowych, co host, co może zwiększyć ryzyko bezpieczeństwa.
- Nadaje się do scenariuszy wymagających wysokiej wydajności sieci lub specyficznych konfiguracji sieciowych.
Przykład użycia:
docker run -d --network host --name my_container nginx
1.3 Sterownik sieciowy None
Sterownik sieciowy none
wyłącza wszystkie funkcje sieciowe kontenera. Kontener podłączony do sieci none nie ma interfejsu sieciowego, co całkowicie izoluje go od innych kontenerów i sieci.
Charakterystyka:
- Pełna izolacja kontenera od wszystkich sieci.
- Przydatny dla kontenerów, które nie wymagają sieci, na przykład do wykonywania zadań niezależnych od sieci.
Przykład użycia:
docker run -d --network none --name my_container busybox
1.4 Sterownik sieciowy Overlay
Sterownik sieciowy overlay
jest używany do tworzenia rozproszonej sieci, która obejmuje kilka hostów Docker. Ten sterownik jest często używany w Docker Swarm lub Kubernetes, aby zapewnić sieciową komunikację między kontenerami na różnych hostach.
Cechy szczególne:
- Zapewnia połączenie między kontenerami na różnych hostach.
- Wymaga skonfigurowanego klastra, takiego jak Docker Swarm.
- Pozwala na tworzenie wirtualnych sieci na istniejących sieciach, zapewniając wysoki poziom izolacji i bezpieczeństwa.
Przykład użycia:
Aby użyć sterownika overlay
, najpierw trzeba utworzyć klaster Docker Swarm.
1. Inicjalizacja Docker Swarm:
docker swarm init
2. Tworzenie sieci overlay:
docker network create -d overlay my_overlay_network
3. Uruchamianie kontenerów z połączeniem do sieci overlay
:
docker service create --name my_service --network my_overlay_network nginx
1.5 Porównanie driver'ów sieciowych
Porównanie różnych driver'ów sieciowych
Driver sieciowy | Izolacja | Wydajność | Zastosowanie | Cechy |
---|---|---|---|---|
bridge | Wysoka | Umiarkowana | Lokalne sieci | Domyślna izolowana sieć |
host | Niska | Wysoka | Wydajność | Wspólny stos sieciowy z hostem |
none | Pełna | Najwyższa | Izolacja | Pełna izolacja od sieci |
overlay | Wysoka | Wysoka | Sieci rozproszone | Komunikacja pomiędzy kontenerami na różnych hostach |
Zastosowanie driver'ów sieciowych
-
Bridge
: używaj do lokalnych aplikacji i testów, kiedy kontenery muszą współdziałać ze sobą, ale powinny być izolowane od sieci zewnętrznej. -
Host
: stosuj do aplikacji wymagających wysokiej wydajności sieci lub specjalnych konfiguracji sieciowych, gdzie izolacja sieci nie jest priorytetem. -
None
: używaj dla całkowicie izolowanych kontenerów, które nie potrzebują interakcji sieciowej. -
Overlay
: używaj do aplikacji rozproszonych działających w klastrze, gdzie konieczne jest zapewnienie komunikacji pomiędzy kontenerami na różnych hostach.
GO TO FULL VERSION