reklama

Docker ignoruje /etc/hosts

Danny

Docker ignoruje /etc/hosts
« kdy: 08. 11. 2018, 10:40:44 »
Ahoj, mám problém: potřebuju, aby se proces, který je dockerizovaný, připojil na stroj, jehož jméno je na hostitelském stroji v /etc/hosts - Docker však z mě neznámého důvodu /etc/hosts ignoruje

(což jsem zjistil tak, že na hostitelském stroji ten stroj pingnu, ale vevnitř běžícího kontejneru už ne)

zkoušel jsem ještě v Dockerfile editovat /etc/hosts, který je uvnitř image, ale změna se neprojeví

jak to řešit? dík

reklama


Re:Docker ignoruje /etc/hosts
« Odpověď #1 kdy: 08. 11. 2018, 10:53:28 »
Aplikace běžící uvnitř Docker kontejneru se řídí konfigurací uvedenou v /etc/hosts uvnitř kontejneru. Aby fungoval ping zevnitř kontejneru na hostitelský stroj, musí být správně nastaveno routování mezi nimi a nesmí to zakázat firewall.

Danny

Re:Docker ignoruje /etc/hosts
« Odpověď #2 kdy: 08. 11. 2018, 10:57:48 »
trochu provizorně vyřešeno pomocí parametru "--network=host" v docker run

yti

Re:Docker ignoruje /etc/hosts
« Odpověď #3 kdy: 08. 11. 2018, 12:16:34 »
Kontajner bezi vo svojom nezavislom network priestore, takze nevie nic o /etc/hosts z host OS. S pouzitim --network=host si presunul kontajner do host network priestoru, takze uz vidi host /etc/hosts. Teoreticky mozes mountnut /etc/hosts z hosta do kontajnera, ale nie je to dobry napad, kedze Docker spravuje tento subor. Lepsie je pouzit --add-host Docker run parameter. A aj potom mozu mat niektore aplikacie problem pouzit tento zaznam (napr. Golang), kedze do hry este vstupuje nastavanie z /etc/nsswitch.conf, kde potrebujes mat 'hosts: files dns'.

https://docs.docker.com/engine/reference/run/

Re:Docker ignoruje /etc/hosts
« Odpověď #4 kdy: 08. 11. 2018, 12:30:33 »
Kontajner bezi vo svojom nezavislom network priestore, takze nevie nic o /etc/hosts z host OS. S pouzitim --network=host si presunul kontajner do host network priestoru, takze uz vidi host /etc/hosts.
Síťový prostor jsou údaje v jádru (přiřazené IP adresy, routovací tabulky, pravidla firewallu). /etc/hosts je jenom obyčejný soubor na disku, jádro s ním nijak nepracuje. Ten soubor používá systémová knihovna – DNS resolver. Obvykle glibc, ale může být použita jiná knihovna, případně může aplikace používat jiný způsob resolvování a záleží na ní, zda používá /etc/hosts.


ferda

Re:Docker ignoruje /etc/hosts
« Odpověď #5 kdy: 08. 11. 2018, 19:53:55 »
Kód: [Vybrat]
--add-host=""      : Add a line to /etc/hosts (host:IP)

 

reklama