Zpřístupnění síťových služeb v Dockeru

Intermediate Docker

Mike Metzger

Data Engineering Consultant

Síťové služby

  • Síťové služby naslouchají na daném portu
  • Na kombinaci IP:port může v daný okamžik naslouchat pouze jeden program
    • Například 10.1.2.3:80 naslouchá na adrese 10.1.2.3 na portu 80.
  • Zvažte ladění různých verzí webového serveru naslouchajícího na portu 80
    • Najednou lze spustit pouze jednu kopii aplikace, protože naslouchá pouze na tomto portu
Intermediate Docker

Kontejnerizované služby

  • Zabalení aplikace do kontejneru umožní každému kontejneru naslouchat na tomto portu (kombinace IP:port je odlišná, každý kontejner má jinou IP)
  • Lze spustit více kopií kontejnerů najednou
  • Jak se ale připojit k aplikaci v kontejneru z hostitelského systému?
Intermediate Docker

Mapování portů

  • Řešením je mapování portů (port forwarding / překlad portů)
  • Mapování portů přesměruje připojení na danou kombinaci IP:port na jinou kombinaci IP:port
  • Lze namapovat nepoužívaný port na hostiteli na port 80 kontejneru
  • Docker engine to může zajistit automaticky, pokud ho tak nakonfigurujeme

Příklad mapování portů

Intermediate Docker

Povolení mapování portů

  • Pro povolení mapování portů u daného kontejneru použijeme příkaz docker run s přepínačem -p
  • -p <port hostitele>:<port kontejneru>
  • -p 5501:80
  • Pro různé porty lze použít více přepínačů -p
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
Intermediate Docker

Pojďme cvičit!

Intermediate Docker

Preparing Video For Download...