Tutorial Docker - Network

   Pada materi kali ini, kita akan melanjutkan seri dari Tutorial Docker. Setelah sebelumnya kita membahas tentang Docker Volume kita akan masuk ke materi selanjutnya yaitu Docker Network.

Apa Itu Docker Network?
    Docker Network adalah fitur yang disediakan oleh docker untuk mengatur komunikasi, baik itu container ke container, container ke host dan container dengan jaringan external.

    Supaya lebih terbayang kita akan menganalogikan container sebagai sebuah rumah yang berada di sebuah kompleks.

  1. Rumah alias dari (Container)
    Setiap rumah memiliki alamat yang unik (IP Address)
  2. Kompleks alis dari (Docker Host)
    Semua rumah berada di dalam satu kompleks yang dikelola oleh docker
  3. Gerbang sebagai Port Mapping (-p)
    Gerbang rumah akan terbuka ketika port di publish
  4. Jaringan sebagai Lingkungan (RT/RW) di dalam kompleks
    Rumah-rumah yang berada di jaringan yang sama dapat saling mengenal cukup dengan nama rumah.

    Ilustrasinya, kita memiliki dua container: container MySQL dan container phpMyAdmin (PMA), yang kita ibaratkan sebagai dua rumah di dalam satu kompleks besar. Rumah PMA tidak bisa berkomunikasi dengan rumah MySQL untuk mengelola database karena rumah PMA tidak mengetahui alamat (IP) rumah MySQL.

    Untuk mengatasi hal ini, kita bisa membuat lingkungan (RT/RW) kustom di dalam kompleks, yang menggabungkan rumah MySQL dan rumah PMA agar berada di lingkungan yang sama. Dengan demikian, rumah PMA dapat berkomunikasi dengan rumah MySQL hanya dengan menyebutkan nama rumah MySQL, tanpa perlu mengetahui alamat IP secara manual.

    Dengan ilustrasi diatas semoga temen-temen bisa membayangkan terlebih dahulu cara kerja dari Docker Network. Di dalam Docker Network terdapat beberapa driver seperti Bridge, Host, Overlay, None dan Custom Network.

Driver Docker Network
  1. Brdige
    Jaringan lokal yang berada pada host yang sama, cocok digunakan untuk skenario standalone.
  2. Host
    Container dapat menggunakan jaringan host langsung tanpa adanya lapisan isolasi, cocok untuk aplikasi yang memerlukan performa jaringan tinggi.
  3. Overlay
    Jaringan yang digunakan untuk komunikasi antar host dalam lingkungan Docker Swarm dan cocok untuk skenario distributed systems.
  4. None
    Container tidak akan memiliki jaringan sama sekali, cocok untuk container yang memerlukan isolasi total.
  5. Custom Network
    Jaringan yang dapat kita buat dan manipulasi sesuai kebutuhan.

Perintah CLI Pada Docker Network
  1. Membuat Network

    docker network create <nama_network>


  2. Melihat Daftar Network

    docker network ls


  3. Melihat Detail Network

    docker network inspect <nama_network>


  4. Menghapus Network

    docker network rm <nama_network>



  5. Menghubungkan Container Ke Network

    docker network connect <nama_network> <nama_container>
  6. Memutuskan Container Dari Network

    docker network disconnect  <nama_network> <nama_container>
Implementasi Docker Network

    Sekarang kita akan mencoba implementasi Docker Network, sesuai ilustrasi diatas kita akan menggunakan container MySql dan PMA supaya bisa terhubung.
  1. Membuat Network (data_tools adalah nama untuk network custom)


  2. Membuat Container PMA dan menghubungkan ke network data_tools

    docker run -d --name pma --net data_tools -p 8080:80 -e PMA_HOST=mysql-container phpmyadmin:latest


  3. Menghubungkan Container mysql-container ke network data_tools
    Karena sebelumnya kita sudah membuat container mysql, maka kita tinggal mengkoneksikannya ke volume data_tools.

    docker network connect data_tools mysql-container


    Lakukan inspect network untuk mengecek apakah kedua container sudah masuk ke network data_tools.

  4. Akses PMA di browser
    Akses dengan port 8080 atau port yang sudah temen-temen set sebelumnya.


    Masukkan Nama Pengguna dan Kata Sandi DBMS MySql.

  5. Container pma berhasil terkoneksi dengan mysql-container.

Catatan : Ketika kita membuat container menjadi dalam satu jaringan, temen-temen bisa menghapus Mapping Port (-p) pada mysql-container. Namun, jika Mapping Port tidak disertakan temen-temen tidak bisa mengakses mysql-container dengan Database Management Tools seperti SqlYog, DataGrip dan Table Plus.

    Mungkin itu saja yang bisa kita pelajari dari materi kali ini. Semoga materinya dapat membantu teman-teman memahami tentang Docker Network. Jika teman-teman memiliki pertanyaan atau ingin berbagi pengalaman, silakan ketikkan pada kolom komentar di bawah.

Sedikit Tentang Saya :

    Sebagai seorang programmer profesional dengan pengalaman sekitar 4 tahun di bidang IT, saya siap membantu Anda dengan berbagai kebutuhan konsultasi.

Jangan ragu untuk menghubungi saya melalui WhatsApp.

Sampai jumpa di tutorial berikutnya!

Kontak Saya :
Email : ronisurya.115@gmail.com
WhatsApp : 081222821596
Website : Roni Surya

Tutorial Selanjutnya : Tutorial Docker - Resource Limits dan Stats

Tutorial Sebelumnya :

  1. Tutorial Docker - Volume
  2. Tutorial Docker - Implementasi Image dan Container
  3. Tutorial Docker - Image dan Container
  4. Tutorial Docker - Mengenal Docker dan Konsep Kontainer
Lebih baru Lebih lama