Membuka layanan jaringan di Docker

Docker Tingkat Menengah

Mike Metzger

Data Engineering Consultant

Layanan jaringan

  • Layanan jaringan mendengarkan pada port tertentu
  • Hanya satu program yang dapat mendengarkan pada kombinasi IP:port pada satu waktu
    • Misalnya, 10.1.2.3:80 berarti mendengarkan di 10.1.2.3 pada port 80.
  • Bayangkan men-debug beberapa versi web server yang mendengarkan di port 80
    • Hanya bisa menjalankan satu salinan aplikasi sekaligus karena hanya mendengarkan di port itu
Docker Tingkat Menengah

Layanan tercontainerisasi

  • Membungkus aplikasi dalam container membuat tiap container dapat mendengarkan pada port yang sama (kombinasi IP:port berbeda karena tiap container punya IP berbeda)
  • Dapat menjalankan beberapa salinan container sekaligus
  • Namun, bagaimana mengakses aplikasi di dalam container dari host?
Docker Tingkat Menengah

Pemetaan port

  • Solusinya adalah pemetaaan port (port forwarding/translation)
  • Pemetaaan port mengambil koneksi ke suatu IP:port dan meneruskannya otomatis ke kombinasi IP:port lain
  • Di sini, kita bisa memetakan port kosong di host ke port 80 pada container
  • Docker Engine dapat menanganinya otomatis jika dikonfigurasi

Contoh pemetaan port

Docker Tingkat Menengah

Mengaktifkan pemetaan port

  • Untuk mengaktifkan pemetaan port pada container, gunakan perintah docker run dengan flag -p
  • -p <port host>:<port container>
  • -p 5501:80
  • Dapat memakai beberapa flag -p untuk port berbeda
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 Tingkat Menengah

Ayo berlatih!

Docker Tingkat Menengah

Preparing Video For Download...