Generator podsieci demona Docker
Generuj ustawienia daemon.json sterujące podsieciami używanymi przez Docker: default-address-pools oraz adres mostu docker0 (bip). Sprawdzaj, ile sieci mieści się w określonych zakresach, i wykrywaj konflikty.
Wejście
Wyjście
Instrukcja
Czym są pule adresów Docker?
Każda sieć Docker otrzymuje własny zakres adresów IP, nazywany podsiecią. Gdy tworzysz sieć bez wybierania podsieci, Docker pobiera ją z wbudowanej listy pul adresów, która zaczyna się od 172.17.0.0/16 i obejmuje kolejne zakresy aż do 172.31.0.0/16 oraz 192.168.0.0/16. Działa to do momentu, gdy wybrany zakres zacznie kolidować z czymś innym, na przykład z VPN-em, siecią firmową lub bazą danych działającą pod stałym adresem. Aby naprawić ten problem jednocześnie dla wszystkich sieci, zmień pule adresów w ustawieniach demona Docker.
Opis narzędzia
To narzędzie generuje ustawienia daemon.json, które określają, jakich podsieci używa Docker. Wprowadź co najmniej jeden zakres puli adresów oraz rozmiar każdej sieci, aby uzyskać ustawienie default-address-pools. Możesz również ustawić adres domyślnego bridge’a docker0 za pomocą parametru bip. Narzędzie pokazuje, ile sieci mieści się w pulach i ile hostów ma każda sieć, sprawdza dane podczas ich wpisywania oraz oznacza zakresy, które mogą powodować konflikty. Wszystkie obliczenia są wykonywane w przeglądarce.
Przykłady
Przydziel wszystkim nowym sieciom zakres /24 z puli 10.10.0.0/16, co zapewni miejsce na 256 sieci z 254 użytecznymi hostami każda:
{
"default-address-pools": [
{
"base": "10.10.0.0/16",
"size": 24
}
]
}Przenieś domyślnego bridge’a do innego zakresu i użyj dwóch pul:
{
"bip": "10.200.0.1/24",
"default-address-pools": [
{
"base": "10.10.0.0/16",
"size": 24
},
{
"base": "10.20.0.0/20",
"size": 24
}
]
}Funkcje
- Jednoczesna obsługa kilku zakresów pul adresów, po jednym w każdym wierszu
- Rozmiar sieci, które Docker wyodrębnia z każdej puli
- Opcjonalny adres domyślnego bridge’a
docker0 - Informacja o liczbie sieci mieszczących się w pulach oraz o liczbie użytecznych hostów w każdej sieci
- Ostrzeżenia dotyczące zakresów publicznych, nakładających się pul oraz adresów z ustawionymi bitami hosta
- Pobieranie wyniku jako
daemon.json
Jak to działa
Zakres zapisuje się jako adres i długość prefiksu, na przykład 10.10.0.0/16. Prefiks określa, ile z 32 bitów stanowi część sieciową, a pozostałe bity służą do oznaczania hostów. Każda pula ma zakres bazowy i rozmiar sieci. Docker dzieli bazę na sieci o określonym rozmiarze i przydziela je po kolei, dlatego baza 10.10.0.0/16 z rozmiarem 24 daje 2^(24 − 16) = 256 sieci. Sieć /24 ma 256 adresów, z czego 254 są użyteczne, ponieważ pierwszy jest adresem sieci, a ostatni adresem rozgłoszeniowym. Docker używa również pierwszego użytecznego adresu jako bramy sieci typu bridge.
Rozmiar nie może być mniejszy niż prefiks bazy i jest ograniczony do /30, ponieważ sieć musi zapewniać miejsce na bramę oraz co najmniej jeden kontener.
Wskazówki
- Wybieraj zakresy z 10.0.0.0/8 lub 172.16.0.0/12, których nie używa Twój VPN ani sieć firmowa. Zakresy w pobliżu 192.168.0.0/16 najczęściej powodują konflikty, ponieważ korzystają z nich routery domowe i firmowe
- Domyślny bridge
docker0zawsze korzysta z zakresu 172.17.0.0/16. Jeśli powoduje on konflikt z Twoją siecią, ustawbipna inny adres, na przykład 10.200.0.1/24 - Zapisz wynik jako
/etc/docker/daemon.jsonw systemie Linux lub w sekcji Ustawienia → Docker Engine w Docker Desktop, a następnie uruchom ponownie Docker. Połącz go z ustawieniami, które już znajdują się w pliku, zamiast je zastępować - Zmiana
default-address-poolswpływa tylko na sieci utworzone później. Usuń istniejące sieci i utwórz je ponownie, aby przenieść je do nowego zakresu - Pule, które nakładają się na siebie, są trudne w analizowaniu, dlatego należy zachować między nimi odstępy
- Gdy pojawi się komunikat „all predefined address pools have been fully subnetted”, oznacza to, że Dockerowi zabrakło zakresów. Dodaj większą bazę lub zmniejsz rozmiar sieci, aby uzyskać więcej sieci