Disponibilizarea serviciilor de rețea în Docker

Docker intermediar

Mike Metzger

Data Engineering Consultant

Servicii de rețea

  • Serviciile de rețea ascultă pe un port dat
  • Un singur program poate asculta pe o combinație IP:port la un moment dat
    • De exemplu, 10.1.2.3:80 ascultă pe 10.1.2.3 la portul 80.
  • Considerați depanarea unor versiuni diferite ale unui server web care ascultă pe portul 80
    • Se poate rula o singură copie a aplicației, deoarece aceasta ascultă pe acel port
Docker intermediar

Servicii containerizate

  • Împachetarea aplicației într-un container permite fiecărui container să asculte pe acel port (combinația IP:port diferă, fiecare container având un IP diferit)
  • Pot rula mai multe copii ale containerelor simultan
  • Dar cum se conectează la aplicația din container de pe mașina gazdă?
Docker intermediar

Maparea porturilor

  • Soluția este utilizarea mapării porturilor, sau redirecționarea/translarea porturilor
  • Maparea porturilor preia o conexiune la un IP:port și o redirecționează automat către alt IP:port
  • Putem mapa un port neutilizat de pe gazdă și îl putem îndrepta spre portul 80 al containerului (containerelor)
  • Motorul Docker poate gestiona aceasta automat, dacă este configurat corespunzător

Exemplu de mapare a porturilor

Docker intermediar

Activarea mapării porturilor

  • Pentru a activa maparea porturilor, folosim comanda docker run cu indicatorul -p
  • -p <port gazdă>:<port container>
  • -p 5501:80
  • Se pot folosi mai mulți indicatori -p pentru porturi diferite
repl@host:~$ docker run -p 5501:80 nginx

repl@host:~$ docker ps -a
CONTAINER ID IMAGE ... PORTS NAMES 84266724ff47 nginx ... 0.0.0.0:5501->80/tcp, :::5501->80/tcp coiled_elgamal
Docker intermediar

Să exersăm!

Docker intermediar

Preparing Video For Download...