dockerben futó DNS build - hogyan?
A dnsmasq is konténerben futna.
A Dokcerfile valahogy így indult:
FROM alpine:latest
RUN apk update ; apk upgrade ; apk install dnsmasq
...
Ott a gond, hogy ez a konténer lenne "a" dns.
(a systemd és egy egyéb nyalánkságok miatt a másodlagos dns nem annyira tökéletes)
Viszont amíg ez nincs, addig nincs névfeloldás.
A build idejére átirányítanám a routerre, de nem tudom hogyan. :(
Nagyonbb baj, hogy a dokcer-compose-ban sem találom, hogy lehetne ilyen megcsinálni.
Millió helyen kérdeztem, de kb. senki sem érti, mi a gond.
Ti tudnátok tippet adni?
upd: ahogy lentebb írtam egy kommentben, a host névfeloldásával nincs gond, csak a konténerek zakkannak meg, ha ezt a konténerben futó dnsmasq-ot kirántom alóluk.
■ A Dokcerfile valahogy így indult:
FROM alpine:latest
RUN apk update ; apk upgrade ; apk install dnsmasq
...
Ott a gond, hogy ez a konténer lenne "a" dns.
(a systemd és egy egyéb nyalánkságok miatt a másodlagos dns nem annyira tökéletes)
Viszont amíg ez nincs, addig nincs névfeloldás.
A build idejére átirányítanám a routerre, de nem tudom hogyan. :(
Nagyonbb baj, hogy a dokcer-compose-ban sem találom, hogy lehetne ilyen megcsinálni.
Millió helyen kérdeztem, de kb. senki sem érti, mi a gond.
Ti tudnátok tippet adni?
upd: ahogy lentebb írtam egy kommentben, a host névfeloldásával nincs gond, csak a konténerek zakkannak meg, ha ezt a konténerben futó dnsmasq-ot kirántom alóluk.
Jól értem,
Ha igen, akkor szerintem az lesz a megoldás, hogy build idejére (kézzel) beállítasz valamit, aztán a kész buildelt image-et tárolod magadnak... Nyilván így (verzió-) frissítéskor igen kényelmetlen, de hirtelen nem tudok jobbat.
A kerdes az, hogy
Különösen, ha compose-t használnék.
Amit eddig találtam: build alatt nincs rá opció, docker run esetén meg bekerül a konténerbe, nem csak a build idejére használja (plusz ezt nem is tudom beírni a .yml-bel)
Host gépen
Utána állíthatod a kész konténerre.
Ja, félreérthető voltam: csak
A hostnak a másodlagos a systemd-n keresztül működik valahogy.
Egyébként kicsit el is néztem a dolgokat, lásd külön komment! (rögtön írom)
Egyre izgalmasabb a
Az alap az volt, hogy külön gépen futó DNS esetében sehol semmi gondom nem volt.
Aztán megpróbáltam átállni arra, hogy "a" szerveren konténerben fut a syslog-ng és a dnsmasq, a szerver több IP címéből egy sokadlagoson publikálva.
host: 172.16.1.2, 172.16.2.2, 172.16.3.2
A második IP forgalma 1:1-ben átirányítva egy ugyanezen a gépen futó kvm guestre, a harmadikon publikálom a konténeres szolgáltatásokat.
A hoston ubuntu van, ha az ufw-t kikapcsolom, akkor minden OK.
De ha bekapcsolom...
Külső gépről, pl. a laptopomról gond nélkül elérem a 172.16.3.2 címen futó DNS-t és syslog szervert is.
Viszont ugyanez hoston belül valamiért nem megy. Bizonyos esetekben látszik a journalctl-ben, hogy a UFW blokkolja, máskor nem - ez utóbbi lehet, hogy az én bűnöm.
Mindezeket tetézi, hogy bár a docker lehetőséget ad rá, hogy letiltsam az iptables buzerálást részéről, de olyankor egyáltalán nem működik a konténerekben a hálózat.
Összességében: nem értem.
Hálózat
Nem tudom segít - e valamennyit, de Docker for windows beállításai között van Network fül, ahol megadható Subnet Address + Mask. Itt kellett megfelelőt beállítsak, amikor a VPN "adapter" letiltotta (amikor fent voltam a VPN-en), kerestem olyan címet, amit megengedett a VPN is.
Talán valami ilyesmit kéne keress Te is, de a Te host gépedre szabottan.
Igen, ha ezt letiltom, akkor
Időközben még nyomozgattam, úgy fest, nem nagyon fogom tudni megoldani úgy, ahogy nekem kellene.
Ugyanis a szeparáció nevében a kontérek a hoston semmihez sem férhetnek hozzá. Elvileg. Úgy látom, nem IP cím alapján szűr, hanem a docker adaptere felől érkező összes packetet. Megkerülni meg tudom, inkább csak érteni szeretném, hogy mi is történik, amikor egy adott szolgáltatás bárhonnan elérhető, csak a többi konténerből nem.
Ha lenne lehetőség trace-elni az iptables működését (úgy, hogy én is értsem), akkor talán összejönne.
fájl szinten hozzáférhet
Példa docker-compose.yaml:
docker network ls Ez rejti a
Ez rejti a megoldást.
A konténerekkel létrejön egy privát háló, amin keresztül név alapján elérik egymást.
Ott a gond, hogy én a host IP-jén akarom elérni a szolgáltatásokat és ez alapjáraton nem megy.
Ennek az az oka, hogy olyan közös szolgáltatásokat akarok elérni, mint dns, syslog, proxy, emiatt a privát net workaroundként elmegy, de jobban örülnék, ha nem kellene kívülről más úton elérni, mint a hoston lévő konténerekből.
links nem tud ilyet?
Remélem azért lesz rá megoldás egyszer...
Deprecated. :)
Hoppá :)