Istnieją trzy miejsca, w których doker generuje podsieci sieciowe.
- Domyślny most
- Sieci mostowe generowane przez użytkowników
- Generowane w trybie roju sieci nakładkowe
W przypadku domyślnego mostu (zwanego „mostem”) możesz określić BIP (uważam, że to jest IP mostu; upewnij się, że jest to IP hosta, a nie IP sieci ) w daemon.jsonpliku. W przypadku sieci mostów generowanych przez użytkownika można zdefiniować pulę podsieci, z której można wybierać (zakładając, że użytkownik nie określi ręcznie podsieci). Dla tych dwóch /etc/docker/daemon.jsonwyglądałoby to tak:
{
"bip": "10.200.0.1/24",
"default-address-pools":[
{"base":"10.201.0.0/16","size":24},
{"base":"10.202.0.0/16","size":24}
]
}
Każde powyższe ustawienie puli adresów określa zakres CIDR i rozmiar podsieci, które mają zostać przydzielone z tego zakresu. Zatem powyższe definiuje dwa zakresy klasy B, które są alokowane jako sieci klasy C (/ 24). Potrzebujesz domyślnej puli adresów co najmniej 18,06. Aby zastosować tę zmianę, należy ponownie załadować demona dokera systemctl reload docker. Ta zmiana zmodyfikuje tylko nowo utworzone sieci użytkowników, więc musisz zatrzymać kontenery i usunąć istniejące sieci w niewłaściwym zakresie.
W 18.09 Docker dodał możliwość określenia zakresu adresów dla sieci nakładek generowanych w trybie roju. Można to zrobić tylko w momencie tworzenia roju, mam nadzieję, że zostanie to zaktualizowane w przyszłości, aby umożliwić docker swarm updatedostosowanie tych pul:
$ docker swarm init \
--default-addr-pool 10.202.0.0/16 \
--default-addr-pool 10.203.0.0/16 \
--default-addr-pool-mask-length 24