unity wiedza

Czas czytania: 3 minut

Konfiguracja sieci dockerowych – krok po kroku

Docker w domyślnej konfiguracji może przysłaniać adresacje używane przez serwery lub usługi klientów. Niniejszy artykuł opisuje jak można go przekonfigurować tak, aby działał w obrębie wybranej sieci (np. 10.222.0.0/16), przygotowanej specjalnie na potrzeby dockera.

Komunikacja w obrębie tej adresacji odbywa się lokalnie na maszynie, więc nie powinno być ryzyka kolizji pomiędzy poszczególnymi maszynami. Tak wybraną adresację należy traktować jako zarezwowaną i należy pilnować aby uruchmiając jakiś nowy system z tej adresacji nie korzystać.


Konfiguracja sieci dockerowych

Na początek upewniamy się, że mamy docker-a w wersji przynajmniej 18.06:

Najpierw musimy skonfigurować docker-a przez edycję pliku docker.json. Lokalizacja pliku opisana jest w dokumentacji (paragraf ‚Configure the Docker daemon’). Na Windowsie mogą wystąpić z tym pewne problemy, na końcu artykułu wyjaśniam, jak sobie na nim poradzić.

W docker.json wrzucamy następującą konfigurację:

Jak widać sieć podzieliliśmy dodatkowo na pół. Pół dla domyślnej sieci dockerowej, pół dla sieci użytkowników.

Następnie usuwamy wszystkie istniejące sieci dockerowe, gdyż zmiany będą dotyczyć tylko tych nowo tworzonych. Możemy to zrobić robiąc docker-compose down na wszystkich composach, zabijając wszystkie kontenery i dla pewności na końcu robiąc docker network prune (i potwierdzając chęć posprzątania sieci).

Następnie restartujemy usługę dockera (albo po prostu restartujemy kompa) i nowe ustawienia powinny już działać.

Docker i Windows – historia trudnej miłości, ale ze szczęśliwym zakończeniem

Ale te problemy da się obejść. Najpierw wchodzimy w GUI dockera na Windows, w zakładce Daemon przełączamy Advanced i naszym oczom ukazuje się json gotowy do edycji. Niestety pomocny walidator nie pozwoli nam dodać powyższych opcji twierdząc, że nie są dostępne (a są!).

Klikamy więc tylko „Apply” nic nie zmieniając i idziemy do katalogu domowego użytkownika (np. C:\Users\myuser\) gdzie szukamy katalogu .docker. W nim edytujemy daemon.json i dodajemy wpisy z jsona wyżej. Klikamy w zasobniku systemowym dockerowego wielorybka i restartujemy.

Jak zweryfikować czy wszystko działa?

Startujemy kontener / compose.

(UWAGA: jeżeli nie jest to ‚świeży’ stack docker-compose albo nie robiliśmy docker-compose down po zmianie configa i restarcie dockera, to prawie pewne, że nie zadziała to poprawnie. uczulam ponownie: należy stacki docker-compose kompletnie wywalić po zmianie configa i postawić od nowa – samo zabicie działającego compose to za mało).

Robimy docker ps:

Powiększenie: TUTAJ

Bierzemy idka kontenera np. e7d458253006. Robimy inspect z filtrem by pobrać sam IP kontenera (przykład niżej).

Jeżeli zwrócone IP zaczyna się od 10.222 jesteśmy w domu 🙂

W Unity Group dzielimy się wiedzą w trakcie spotkań wewnętrznych, takich jak Unity Tech Talks, czy Coders. Jeśli chcesz do nas dołączyć jako programista Java, zapraszamy do zapoznania się z ofertą pracy.

Wyrażam zgodę na przetwarzanie danych osobowych na zasadach określonych w polityce prywatności. Jeśli nie wyrażasz zgody na wykorzystywanie cookies we wskazanych w niej celach, w tym do profilowania, prosimy o wyłącznie cookies w przeglądarce lub opuszczenie serwisu. więcej

Akceptuj