Docker'da ağ servislerini erişilebilir kılma

Orta Düzey Docker

Mike Metzger

Data Engineering Consultant

Ağ servisleri

  • Ağ servisleri belirli bir portta dinler
  • Aynı anda yalnızca bir program bir IP:port ikilisinde dinleyebilir
    • Örneğin, 10.1.2.3:80; 10.1.2.3 IP'sinde 80 portunu dinler
  • 80 portunda dinleyen bir web sunucusunun farklı sürümlerini hata ayıklamayı düşünün
    • Uygulama yalnızca o portta dinlediği için aynı anda tek kopya çalıştırılabilir
Orta Düzey Docker

Konteynerleştirilmiş servisler

  • Uygulamayı bir konteynere sarmak, her konteynerin artık o portta dinleyebilmesi demektir (IP:port ikilisi farklıdır; her konteynerin IP'si ayrıdır)
  • Aynı anda birden çok konteyner kopyası çalıştırılabilir
  • Peki, ana makinadan konteynerdeki uygulamaya nasıl bağlanılır?
Orta Düzey Docker

Port eşleme

  • Çözüm: port eşleme (port yönlendirme/çevirme)
  • Port eşleme, belirli bir IP:port bağlantısını otomatik olarak başka bir IP:port ikilisine yönlendirir
  • Bu durumda, ana makinede boş bir portu konteyner(ler)deki 80 portuna eşleyebiliriz
  • Docker Engine bunu yapılandırırsak otomatik yönetir

Port eşleme örneği

Orta Düzey Docker

Port eşlemeyi etkinleştirme

  • Belirli bir konteynerde port eşlemeyi etkinleştirmek için docker run ve -p bayrağı kullanılır
  • -p <host portu>:<konteyner portu>
  • -p 5501:80
  • Farklı portlar için birden çok -p bayrağı olabilir
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
Orta Düzey Docker

Hadi pratik yapalım!

Orta Düzey Docker

Preparing Video For Download...