Day 80 : Membuat network dalam docker

Pada hari ini, kita akan mendalami konsep network dalam Docker dan bagaimana cara membuat network untuk menghubungkan container atau mengisolasi mereka sesuai kebutuhan aplikasi. Docker network memungkinkan kita mengatur pola komunikasi yang efektif antara container-container dalam lingkungan yang aman dan terisolasi.

Docker menyediakan tiga jenis network utama, yaitu host, none, dan bridge, yang masing-masing memiliki fungsi dan kegunaan khusus. Mari kita bahas secara rinci mengenai network dalam Docker dan fungsi dari setiap jenis network.



Pengertian Network dalam Docker

Docker network adalah mekanisme yang memungkinkan container untuk berkomunikasi satu sama lain atau dengan jaringan eksternal, termasuk jaringan host. Dengan adanya jaringan dalam Docker, kita bisa menghubungkan container secara fleksibel di dalam satu host atau beberapa host. Docker mendukung beberapa jenis jaringan yang dapat dipilih dan disesuaikan dengan kebutuhan aplikasi, baik untuk keamanan, performa, atau fleksibilitas komunikasi.

Dengan jaringan ini, container dapat dibuat terhubung secara otomatis saat diletakkan dalam satu network yang sama, atau kita bisa mengonfigurasi jaringan agar container tertentu tidak memiliki akses jaringan (isolasi penuh).

Cara Membuat Network dalam Docker

Membuat network di Docker cukup mudah. Docker menyediakan perintah docker network create yang memungkinkan kita membuat network khusus untuk aplikasi. Berikut contoh dasar cara membuat network di Docker:

docker network create my-custom-network

Perintah ini akan membuat network baru bernama my-custom-network dengan pengaturan bridge sebagai default-nya. Network ini bisa kita gunakan untuk menghubungkan container-container agar bisa saling berkomunikasi.

Jenis-Jenis Network dalam Docker dan Fungsinya

Berikut adalah tiga jenis network utama dalam Docker beserta fungsinya:

  1. Bridge Network

    • Pengertian: Bridge adalah jenis network default yang digunakan Docker untuk container jika kita tidak menentukan network khusus saat menjalankan container. Jaringan bridge menciptakan jaringan virtual yang memungkinkan container berkomunikasi dalam jaringan privat yang sama di dalam host Docker.

    • Fungsi: Menghubungkan beberapa container dalam jaringan privat yang sama. Container dalam jaringan ini dapat saling berkomunikasi dan terisolasi dari jaringan host, menjaga keamanan dan menghindari konflik dengan jaringan eksternal.

    • Cara Membuat:

      docker network create --driver bridge diaznetwork

      Dengan cara ini, kita sudah berhasil membuat network sendiri dengan jenis bridge

  2. Host Network

    • Pengertian: Pada host network, container berbagi jaringan yang sama dengan host tanpa layer tambahan, sehingga tidak ada isolasi antara jaringan container dan jaringan host. Container yang menggunakan host network akan berbagi IP address dan port dengan host.

    • Fungsi: Host network cocok digunakan jika container perlu akses langsung ke jaringan host untuk performa yang lebih baik atau jika container perlu akses penuh ke port yang terbuka di host. Menghilangkan layer isolasi memungkinkan container langsung mengakses jaringan fisik dari host Docker.

    • Cara Penggunaan:

      docker run -d --network host nginx

      Dalam contoh ini, nginx akan langsung menggunakan jaringan host. Jika kita mengakses IP host pada port 80, maka kita bisa langsung mengakses layanan yang berjalan di container nginx.

    • Catatan: network jenis host ini hanya bisa di gunakan di Docker linux, tidak bisa di gunakan di Mac atau Windows

  3. None Network

    • Pengertian: None network adalah jenis jaringan yang benar-benar menonaktifkan akses jaringan container. Saat container dijalankan dengan none network, container tersebut tidak akan memiliki IP atau koneksi ke jaringan apa pun, sehingga isolasi jaringan bersifat total.

    • Fungsi: None network digunakan untuk menjalankan container dalam isolasi penuh tanpa koneksi ke jaringan internal atau eksternal. Cocok untuk aplikasi atau tugas yang tidak membutuhkan jaringan, atau jika kita ingin menjalankan proses secara aman tanpa akses jaringan sama sekali.

    • Cara Membuat:

      docker run -d --name shefanetwork --network none nginx

      Container my-container ini tidak akan memiliki koneksi jaringan dan tidak bisa mengakses container atau jaringan lainnya.

Kesimpulan

Docker network sangat penting untuk mengelola komunikasi antar-container dengan aman dan fleksibel. Dengan memahami jenis-jenis network seperti bridge, host, dan none, kita bisa menentukan pengaturan jaringan yang sesuai dengan kebutuhan aplikasi.

  • Bridge: Menghubungkan container dalam satu jaringan privat, cocok untuk aplikasi multi-container.
  • Host: Menggunakan jaringan host tanpa isolasi, cocok untuk aplikasi dengan kebutuhan performa tinggi dan akses langsung ke jaringan host.
  • None: Mengisolasi container dari jaringan, cocok untuk aplikasi yang tidak memerlukan akses jaringan.

Dengan pengetahuan ini, kita dapat mengonfigurasi network di Docker agar lebih optimal dan aman sesuai dengan kebutuhan aplikasi yang dijalankan.

Komentar