2.1 Podstawowe komendy docker network
Sieci w Docker pozwalają kontenerom komunikować się między sobą i z sieciami zewnętrznymi. Komendy docker network oferują elastyczne możliwości tworzenia, konfiguracji i zarządzania sieciami, zapewniając izolację i kontrolę nad komunikacją sieciową kontenerów. W tym wykładzie szczegółowo omówimy komendy docker network i ich zastosowanie do zarządzania sieciami.
Podstawowe komendy docker network:
- docker network create
- docker network ls
- docker network inspect
- docker network connect
- docker network disconnect
- docker network rm
Tworzenie sieci: komenda docker network create
Komenda docker network create służy do tworzenia nowych sieci. Możesz tworzyć sieci z różnymi driverami, takimi jak bridge, host, overlay i macvlan.
Przykład tworzenia sieci z driverem bridge
docker network create --driver bridge my_bridge_network
Przykład tworzenia sieci z driverem overlay
docker network create --driver overlay my_overlay_network
Przykład tworzenia sieci z driverem macvlan
docker network create --driver macvlan \
--subnet=192.168.1.0/24 \
--gateway=192.168.1.1 \
-o parent=eth0 my_macvlan_network
2.2 Komendy do pracy z siecią
1. Wyświetlenie dostępnych sieci: komenda docker network ls
Komenda docker network ls wyświetla listę wszystkich sieci utworzonych w Dockerze.
docker network ls
Wynik komendy będzie wyglądał następująco:
NETWORK ID NAME DRIVER SCOPE
0e7e2d58fe94 bridge bridge local
9c84fdfc69ee host host local
71cfb6a79d9e none null local
2. Wyświetlenie informacji o sieci: komenda docker network inspect
Komenda docker network inspect pozwala uzyskać szczegółowe informacje o konkretnej sieci, w tym podłączone kontenery, ustawienia podsieci i bramy.
Przykład użycia:
docker network inspect my_bridge_network
Wynik komendy będzie zawierał informacje o sieci w formacie JSON:
[
{
"Name": "my_bridge_network",
"Id": "0e7e2d58fe94",
"Created": "2021-01-01T00:00:00.000000000Z",
"Scope": "local",
"Driver": "bridge",
"EnableIPv6": false,
"IPAM": {
"Driver": "default",
"Options": null,
"Config": [
{
"Subnet": "172.18.0.0/16",
"Gateway": "172.18.0.1"
}
]
},
"Internal": false,
"Attachable": false,
"Containers": {
"container_id": {
"Name": "my_container",
"EndpointID": "6c52f8c75c1e",
"MacAddress": "02:42:ac:11:00:02",
"IPv4Address": "172.18.0.2/16",
"IPv6Address": ""
}
},
"Options": {},
"Labels": {}
}
]
3. Podłączenie kontenera do sieci: komenda docker network connect
Komenda docker network connect służy do podłączenia już działającego kontenera do istniejącej sieci.
Przykład użycia:
docker network connect my_bridge_network my_container
4. Odłączenie kontenera od sieci: komenda docker network disconnect
Komenda docker network disconnect służy do odłączenia kontenera od sieci.
Przykład użycia:
docker network disconnect my_bridge_network my_container
5. Usunięcie sieci: komenda docker network rm
Komenda docker network rm służy do usunięcia sieci. Zwróć uwagę, że sieć można usunąć tylko po odłączeniu wszystkich podłączonych do niej kontenerów.
Przykład użycia:
docker network rm my_bridge_network
2.3 Przykłady użycia komend docker network
Przykłady wykorzystania komend docker network
Przykład 1: Tworzenie i użycie sieci typu bridge
Tworzenie sieci:
docker network create --driver bridge my_bridge_network
Uruchamianie kontenerów i ich podłączanie do sieci:
docker run -d --name container1 --network my_bridge_network nginx
docker run -d --name container2 --network my_bridge_network redis
Sprawdzanie sieci:
docker network inspect my_bridge_network
Wynik komendy docker network inspect zawiera szczegółowe informacje o sieci w formacie JSON. Aby wynik był bardziej czytelny, można użyć narzędzia jq:
docker network inspect my_bridge_network | jq
To wygodne do filtrowania i strukturalnego przeglądania danych o sieci, takich jak podłączone kontenery, ich adresy IP i ustawienia podsieci.
Przykład 2: Podłączanie i odłączanie kontenerów
Uruchamianie kontenera:
docker run -d --name my_container nginx
Podłączanie kontenera do sieci:
docker network connect my_bridge_network my_container
Odłączanie kontenera od sieci:
docker network disconnect my_bridge_network my_container
GO TO FULL VERSION