Z powodu problemów z portalami typu captive i domyślnym zakresem adresów IP Dockera, staram się, aby Docker używał zakresu 198,18.0.0 zamiast 172.17.0.0, co koliduje z portalami używanymi w pociągach, w których mieszkam.
Zgodnie z dokumentami utworzyłem /etc/docker/daemon.json
i umieściłem w nim następujące elementy:
{
"bip":"198.18.0.0/16"
}
Działa to w przypadku docker0, ale wydaje się, że nie wpłynęło to na żadną z innych sieci, a przy użyciu komponowania docker pierwsza utworzona sieć to 172.17.0.0, która odtwarza konflikt.
Co mogę zrobić, aby zmienić domyślną podsieć dla wszystkich sieci dokerów (najlepiej bez konieczności podawania mojego niestandardowego zakresu adresów IP w każdym pliku tworzenia)?
źródło
Istnieją trzy miejsca, w których doker generuje podsieci sieciowe.
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.json
pliku. 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.json
wyglądałoby to tak: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 update
dostosowanie tych pul:źródło
bip
opcja w GUI Ustawienia / Preferencje. Dladefault-address-pools
możesz edytować daemon.json ręcznie w tym samym GUI, a dla rojudefault-addr-pool
jeszcze zmienić je zinit
polecenia.Skonfiguruj domyślną sieć pomostową : „… Aby skonfigurować domyślną sieć pomostową, określ opcje w daemon.json. Oto przykład daemon.json z kilkoma określonymi opcjami. Podaj tylko ustawienia, które należy dostosować.…”
Z komponuj: Określ sieci niestandardowe : „… Zamiast korzystać z domyślnej sieci aplikacji, możesz określić własne sieci za pomocą klucza sieci najwyższego poziomu. Pozwala to tworzyć bardziej złożone topologie oraz określać niestandardowe sterowniki i opcje sieciowe. Możesz także używaj go do łączenia usług z zewnętrznie utworzonymi sieciami, które nie są zarządzane przez Compose.… ”
źródło
Może to być trochę brutalne, ale po prostu robię,
sudo ifconfig docker0 down
aby zamknąć interfejs, który jest w konflikcie z Wi-Fi, którego próbuję użyć.źródło