Puncte:0

Cum îmi pot configura mașina locală să utilizeze un server dns găzduit de docker împreună cu alte setări dns pentru anumite domenii?

drapel fr

Am următorul docker-compose.yml folosit ca soluție locală a aplicației web php:

versiunea: "3.1"

Servicii:
  nginx:
    imagine: nginx:1.13
    volume:
      - „./configuration/nginx.conf:/etc/nginx/nginx.conf:ro”
      - „./configuration/etable-local.key:/etc/nginx/etable-local.key:ro”
      - „./configuration/etable-local.crt:/etc/nginx/etable-local.crt:ro”
      - „website:/var/www/html/website”
      - „api:/var/www/html/static”
    link-uri:
      - „php708:site web”
      - „php72:api”
    retele:
      în față:
        adresa_ipv4: 172.20.0.5
    porturi:
      - „80:80”
      - „443:443”

  php72:
    imagine: php:7.2-fpm-alpine
    volume:
      - „api:/var/www/html/api”
    mediu inconjurator:
      MEDIU: local
    retele:
      - în față
    dns:
      - 8.8.8.8
      - 9.9.9.9
  site:
    imagine: php:7.2-fpm-alpine
    volume:
      - „api:/var/www/html/api”
    mediu inconjurator:
      MEDIU: local
    retele:
      - în față
    dns:
      - 8.8.8.8
      - 9.9.9.9
volume:

  site:
    șofer: local
    driver_opts:
      tip: "niciuna"
      o: "lega"
      dispozitiv: $WEBSITE_DIR

  API:
    șofer: local
    driver_opts:
      tip: "niciuna"
      o: "lega"
      dispozitiv: $API_DIR

retele:
  în față:
    ipam:
      config:
        - subrețea: 172.20.0.0/24

Și în computerul meu care rulează containerul docker am următoarele intrări în /etc/hosts:

172.20.0.5 api.local
172.20.0.5 site.local

Dar vreau să deservesc și domenii wildcard, prin urmare mă gândesc să trimit și un dnsmasq cu configurațiile corespunzătoare în docker-compose și să renunț complet la /etc/hosts (reutilizabilitate mai bună și setări partajate între echipe):

versiunea: "3.1"

Servicii:
  nginx:
    imagine: nginx:1.13
    volume:
      - „./configuration/nginx.conf:/etc/nginx/nginx.conf:ro”
      - „./configuration/etable-local.key:/etc/nginx/etable-local.key:ro”
      - „./configuration/etable-local.crt:/etc/nginx/etable-local.crt:ro”
      - „website:/var/www/html/website”
      - „api:/var/www/html/static”
    link-uri:
      - „php708:site web”
      - „php72:api”
    retele:
      în față:
        adresa_ipv4: 172.20.0.5
    porturi:
      - „80:80”
      - „443:443”

  php72:
    imagine: php:7.2-fpm-alpine
    volume:
      - „api:/var/www/html/api”
    mediu inconjurator:
      MEDIU: local
    retele:
      - în față
    dns:
      - 8.8.8.8
      - 9.9.9.9

  site:
    imagine: php:7.2-fpm-alpine
    volume:
      - „api:/var/www/html/api”
    mediu inconjurator:
      MEDIU: local
    retele:
      - în față
    dns:
      - 8.8.8.8
      - 9.9.9.9

  dnsmasq:
     imagine: „jpillora/dnsmasq”
     porturi:
      - „53:53/udp” 
      - „5380:8080”
    volume:
       -"/opt/dnsmasq.conf:/etc/dnsmasq.conf"
    mediu inconjurator:
        HTTP_USER: foo
        HTTP_PASS: bară
    retele:
      în față:
        adresa_ipv4: 172.20.0.6
    dns:
      - 8.8.8.8
      - 9.9.9.9

volume:

  site:
    șofer: local
    driver_opts:
      tip: "niciuna"
      o: "lega"
      dispozitiv: $WEBSITE_DIR

  API:
    șofer: local
    driver_opts:
      tip: "niciuna"
      o: "lega"
      dispozitiv: $API_DIR

retele:
  în față:
    ipam:
      config:
        - subrețea: 172.20.0.0/24

Dar cum îmi pot configura mașina GNU/Linux locală și Windows pentru a rezolva domeniile adecvate prin 172.20.0.6 alături de orice alt domeniu?

În linux mint 19.04, odată ce rulez ifconfig, primesc următoarele setări:

br-144546484da6: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
        inet 172.18.0.1 netmask 255.255.0.0 difuzare 172.18.255.255
        ether 02:42:ee:ad:b4:6b txqueuelen 0 (Ethernet)
        Pachete RX 0 octeți 0 (0,0 B)
        Erori RX 0 a scăzut 0 depășiri 0 cadru 0
        Pachete TX 0 octeți 0 (0,0 B)
        Erori TX 0 a scăzut 0 depășiri 0 purtător 0 coliziuni 0

br-2c821d16ac40: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
        inet 172.24.0.1 netmask 255.255.0.0 difuzare 172.24.255.255
        ether 02:42:d1:29:8f:d0 txqueuelen 0 (Ethernet)
        Pachete RX 0 octeți 0 (0,0 B)
        Erori RX 0 a scăzut 0 depășiri 0 cadru 0
        Pachete TX 0 octeți 0 (0,0 B)
        Erori TX 0 a scăzut 0 depășiri 0 purtător 0 coliziuni 0

br-936b043d07ec: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
        inet 172.20.0.1 netmask 255.255.255.0 difuzare 172.20.0.255
        inet6 fe80::42:31ff:fe3b:6a93 prefixlen 64 scopeid 0x20<link>
        ether 02:42:31:3b:6a:93 txqueuelen 0 (Ethernet)
        Pachete RX 21190 octeți 46944301 (46,9 MB)
        Erori RX 0 a scăzut 0 depășiri 0 cadru 0
        Pachete TX 20152 octeți 3393362 (3,3 MB)
        Erori TX 0 a scăzut 0 depășiri 0 purtător 0 coliziuni 0

docker0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
        inet 172.17.0.1 netmask 255.255.0.0 difuzare 172.17.255.255
        ether 02:42:63:fa:1e:98 txqueuelen 0 (Ethernet)
        Pachete RX 0 octeți 0 (0,0 B)
        Erori RX 0 a scăzut 0 depășiri 0 cadru 0
        Pachete TX 0 octeți 0 (0,0 B)
        Erori TX 0 a scăzut 0 depășiri 0 purtător 0 coliziuni 0

enp3s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
        inet 192.168.2.4 netmask 255.255.255.0 difuzare 192.168.2.255
        inet6 fe80::4819:e008:32b3:eb75 prefixlen 64 scopeid 0x20<link>
        ether 30:5a:3a:82:3c:2c txqueuelen 1000 (Ethernet)
        Pachete RX 1020236 octeți 974038110 (974,0 MB)
        Erori RX 0 a scăzut 0 depășiri 0 cadru 0
        Pachete TX 708231 octeți 83763973 (83,7 MB)
        Erori TX 0 a scăzut 0 depășiri 0 purtător 0 coliziuni 0

lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
        inet 127.0.0.1 netmask 255.0.0.0
        inet6 ::1 prefixlen 128 scopeid 0x10<gazdă>
        loop txqueuelen 1000 (Loopback local)
        Pachete RX 35856 octeți 3871878 (3,8 MB)
        Erori RX 0 a scăzut 0 depășiri 0 cadru 0
        Pachete TX 35856 octeți 3871878 (3,8 MB)
        Erori TX 0 a scăzut 0 depășiri 0 purtător 0 coliziuni 0

vboxnet3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
        inet 192.168.10.1 netmask 255.255.255.0 difuzare 192.168.10.255
        inet6 fe80::800:27ff:fe00:3 prefixlen 64 scopeid 0x20<link>
        ether 0a:00:27:00:00:03 txqueuelen 1000 (Ethernet)
        Pachete RX 0 octeți 0 (0,0 B)
        Erori RX 0 a scăzut 0 depășiri 0 cadru 0
        Pachete TX 1537 octeți 248272 (248,2 KB)
        Erori TX 0 a scăzut 0 depășiri 0 purtător 0 coliziuni 0

veth15937a1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
        inet6 fe80::f828:5eff:fe17:5f3f prefixlen 64 scopeid 0x20<link>
        ether fa:28:5e:17:5f:3f txqueuelen 0 (Ethernet)
        Pachete RX 0 octeți 0 (0,0 B)
        Erori RX 0 a scăzut 0 depășiri 0 cadru 0
        Pachete TX 1299 octeți 200892 (200,8 KB)
        Erori TX 0 a scăzut 0 depășiri 0 purtător 0 coliziuni 0

veth4f39177: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
        inet6 fe80::7807:8bff:fef4:90d6 prefixlen 64 scopeid 0x20<link>
        ether 7a:07:8b:f4:90:d6 txqueuelen 0 (Ethernet)
        Pachete RX 4022 octeți 2287668 (2,2 MB)
        Erori RX 0 a scăzut 0 depășiri 0 cadru 0
        Pachete TX 4674 octeți 1238082 (1,2 MB)
        Erori TX 0 a scăzut 0 depășiri 0 purtător 0 coliziuni 0

vethb2863e3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
        inet6 fe80::986d:2aff:feae:5a83 prefixlen 64 scopeid 0x20<link>
        ether 9a:6d:2a:ae:5a:83 txqueuelen 0 (Ethernet)
        Pachete RX 0 octeți 0 (0,0 B)
        Erori RX 0 a scăzut 0 depășiri 0 cadru 0
        Pachete TX 1279 octeți 197402 (197,4 KB)
        Erori TX 0 a scăzut 0 depășiri 0 purtător 0 coliziuni 0

vethe23b637: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
        inet6 fe80::d8cf:8dff:fe79:2de prefixlen 64 scopeid 0x20<link>
        ether da:cf:8d:79:02:de txqueuelen 0 (Ethernet)
        Pachete RX 10344 octeți 1065309 (1,0 MB)
        Erori RX 0 a scăzut 0 depășiri 0 cadru 0
        Pachete TX 11282 octeți 1252992 (1,2 MB)
        Erori TX 0 a scăzut 0 depășiri 0 purtător 0 coliziuni 0

vethea02dde: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
        inet6 fe80::a8aa:72ff:fe3f:f7f6 prefixlen 64 scopeid 0x20<link>
        eter aa:aa:72:3f:f7:f6 txqueuelen 0 (Ethernet)
        Pachete RX 1792 octeți 43279416 (43,2 MB)
        Erori RX 0 a scăzut 0 depășiri 0 cadru 0
        Pachete TX 2443 octeți 307732 (307,7 KB)
        Erori TX 0 a scăzut 0 depășiri 0 purtător 0 coliziuni 0

vethf1bdbae: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
        inet6 fe80::6cd3:dfff:feec:1000 prefixlen 64 scopeid 0x20<link>
        ether 6e:d3:df:ec:10:00 txqueuelen 0 (Ethernet)
        Pachete RX 0 octeți 0 (0,0 B)
        Erori RX 0 a scăzut 0 depășiri 0 cadru 0
        Pachete TX 1272 octeți 196493 (196,4 KB)
        Erori TX 0 a scăzut 0 depășiri 0 purtător 0 coliziuni 0

vethf209ff2: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
        inet6 fe80::7c6c:11ff:fecc:25c7 prefixlen 64 scopeid 0x20<link>
        ether 7e:6c:11:cc:25:c7 txqueuelen 0 (Ethernet)
        Pachete RX 5594 octeți 45271086 (45,2 MB)
        Erori RX 0 a scăzut 0 depășiri 0 cadru 0
        Pachete TX 7041 octeți 45379695 (45,3 MB)
        Erori TX 0 a scăzut 0 depășiri 0 purtător 0 coliziuni 0

Și rețeaua pe care rulează dns este: br-936b043d07ec dar mi-e teamă că și numele i se poate schimba de fiecare dată când alerg docker-compune (odată ce îmi termin treaba, alerg frecvent docker-compose jos).

Multe soluții de genul acesta unu sugerează rezoluția dns INTERIOR container docker. și pentru că acest lucru nu este ceea ce vreau, ci o modalitate de a avea o rezoluție a numelor wildcard într-un mod similar, aș putea configura domenii locale în /etc/hosts.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.