Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [docker] DNS hosta
Forum PHP.pl > Forum > Kontrola i zarządzanie projektami
nospor
Hej, orientuje sie ktos jak podpiac DNS hosta do kontenerow w docker? Probowalem roznych sposobow z neta ale cos za bardzo nie dzialaja sad.gif
by_ikar
Co masz namyśli poprzez podpięcie DNS hosta? Co chcesz konkretnie uzyskać ?
nospor
W firmie mamy wewnetrzny dns przez co wiemy, ze
mysql-test ma takie a takie ip i nie musimy pisac IP serwera tylko piszemy mysql-test

Niestety nazwa mysql-test nie jest juz widoczna wewnatrz kontenera. Samo IP serwera jest widoczne, ale nazwa pobierana z firmowego dns juz nie.
by_ikar
Sam w sobie DNS raczej nigdy nie testowałem, ale kiedy potrzebowałem jakiegoś curl wewnątrz kontenera do hosta w sieci lokalnej, to używałem tego tak:

Kod
extra_hosts:
- "mysql-test:192.168.0.24"


To jest przykład z compose, w przypadku samego dockera wyglądało by to tak:

Kod
docker run --add-host="mysql-test:192.168.0.24"


To zwyczajnie dodaje do /etc/hosts wpis ip:host, bo normalnie gdybyś ręcznie coś dodał do tego pliku to restart kontenera zwyczajnie by ten wpis usunął, bo cały plik /etc/hosts jest wypełniany przez dockera, w ten sposób tworzy "linki" do innych kontenerów. Jest to w sumie jeden z elementów sieci dockera, czyli możliwość łączenia z innymi zasobami/kontenerami, które są zlokalizowane na innych hostach/sieciach.

Dokumentacja dla compose: https://docs.docker.com/compose/compose-file/#extra-hosts
Dokumentacja dla run: https://docs.docker.com/engine/reference/ru...etwork-settings

Tak jak już ci wspominałem, najlepiej jest używać docker-compose, bo podmiana konfiguracji nie wiąże się z skasowaniem samego kontenera, no i można taką konfiguracje trzymać na repo i współdzielić z innymi. U mnie w firmie każde repo teraz ma swój plik docker-compose.yml biggrin.gif

EDIT: w sumie przypomniałem sobie że jest wiele narzędzi "service discovery" tyle że jeszcze żadnego nie testowałem, z racji tego że wszystko nad czym pracuje musi być najbardziej przenośne jak to tylko możliwe. Ale większość narzędzi o których czytałem, to były narzędzia które działały na zasadzie bardzo podobnej do wpisania takiego hosta do konfiguracji, z tą różnicą, że stawiałeś sobie taką usługę powiedzmy etcd, do której inne kontenery się odwoływały i pobierały z niej konfiguracje, w ten sposób na jakiejś maszynie restartując kontener, lub dodając jakąś maszynę do swojego klastra, pozostałe maszyny miały już tą konfiguracje, bo ona sama w sobie jest scentralizowana (coś jakby). Jest wiele różnych narzędzi, wystarczy wrzucić docker service discovery i dostaniesz pierdylion wyników, bo zanim libnetwork dockera będzie stabilny produkcyjnie (póki co jest rc) do tworzenia sieci kontenerów pomiędzy hostami, to ludzie zdążyli napisać wiele swoich narzędzi. Osobiście wolę natywne rozwiązania, co by polegać na jednym narzędziu, a nie dziesiątkach zewnętrznych, więc wpisuje konfiguracje ręcznie.
nospor
Ja to robilem tak, ze kopiowalem plik z hostami i potem go dopisywalem do /etc/hosts kontenera

docker exec KONTENER /bin/sh -c "cat /etc/hosts.local >> /etc/hosts"

Ale poszedlem po rozum i przejrzalem jeszcze raz dokumentacje docker-compose.yml.... sierota ze mnie:
Cytat
dns

Custom DNS servers. Can be a single value or a list.

dns: 8.8.8.8
dns:
- 8.8.8.8
- 9.9.9.9

dns_search

Custom DNS search domains. Can be a single value or a list.

dns_search: example.com
dns_search:
- dc1.example.com
- dc2.example.com


Ale dzieki za wpis. To po nim i po extra_hosts tknelo mnie, by jeszcze raz zajrze do dokumentacji
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2018 Invision Power Services, Inc.