Puncte:0

Cum să configurați corect o gazdă cu două interfețe de rețea, astfel încât containerul docker să poată furniza servicii în mod normal?

drapel us

Serverul meu are două interfețe de rețea, deci două IP-uri, un IP de internet și o adresă privată.

Am adăugat următorul script la /etc/iproute2/rt_tables:

252 enp0s3
251 enp0s8

Și a adăugat următorul script la /etc/rc.local:

IP route add default prin 172.17.171.151 dev enp0s3 table enp0s3
regulă ip add din 172.17.171.151 tabelul enp0s3

IP route add default prin 172.17.168.121 dev enp0s8 table enp0s8
regulă ip add din 172.17.168.121 tabelul enp0s8

Acum, totul a funcționat bine.

Pot da ping la aceste două ip-uri, așa că icmp a funcționat normal. De asemenea, pot SSH la server prin orice IP, așa că portul 22 funcționează bine.

Cu toate acestea, când folosesc următorul docker-compose pentru a porni un nginx, am constatat că doar portul 80 al oricăreia dintre cele 2 IP-uri poate fi accesat de browser-ul client, iar portul 80 al celuilalt IP nu răspunde.

versiunea: "3"
Servicii:
  nginx:
    reporniți: întotdeauna
    container_name: nginx
    imagine: nginx
    porturi:
     - 0.0.0.0:80:80
    volume:
     - ./log:/var/log/nginx

Ce a cauzat asta? Cum pot iesi din aceasta situatie?

Notă: Fișierul de configurare de mai sus este un mediu de testare pe care l-am construit cu o mașină virtuală, deci adresele IP sunt toate adrese private.

Pasi pentru reproducere:

  1. Utilizare Oracle VM VirtualBox pentru a porni un ubuntu 16.04 cu două interfețe de rețea bridge.
  2. Conectați-vă la mașina virtuală.
  3. Consultați scriptul de mai sus pentru a modifica /etc/iproute2/rt_tables și /etc/rc.local.
  4. Instalați docker și docker-compose.
  5. Utilizați docker-compose de mai sus pentru a porni un Nginx.
  6. Indiferent de interfața de rețea deschisă, gazda poate accesa portul 80 al adresei IP corespunzătoare a mașinii virtuale.
  7. Dacă două interfețe de rețea sunt deschise în același timp, numai portul 80 al uneia dintre interfețele de rețea poate fi deschis, iar cealaltă nu are niciun răspuns.

Informatie suplimentara: Dacă pornesc Nginx direct pe mașina virtuală, portul 80 dintre cele două IP-uri poate fi accesat de mașina gazdă.

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.