Langsung ke konten utama

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

Postingan populer dari blog ini

Day 109 : Akhir dari Perjalanan PKL: Terima Kasih untuk PT Excellent

Hari ini adalah hari terakhir saya menjalani PKL di PT Excellent. Momen ini menjadi penutup dari perjalanan yang luar biasa penuh pembelajaran, pengalaman, dan kenangan yang tak terlupakan. Saya ingin menyampaikan rasa terima kasih yang sebesar-besarnya kepada keluarga besar PT Excellent atas kesempatan, bimbingan, dan kepercayaan yang telah diberikan kepada saya selama saya melaksanakan PKL di sini. Selama PKL, saya mendapatkan banyak pengetahuan baru yang sebelumnya belum pernah saya pelajari. Dari segi teknis, saya belajar banyak tentang teknologi seperti Zimbra, bahasa pemrograman Golang, hingga DevOps hal-hal yang awalnya terasa asing, kini menjadi ilmu yang berharga dan menjadi ilmu baru bagi saya. Namun, pembelajaran saya di PT Excellent tidak hanya terbatas pada aspek teknis. Saya juga belajar tentang kedisiplinan, tanggung jawab, profesionalisme, serta bagaimana pentingnya kolaborasi dalam lingkungan kerja. Terima kasih kepada Mas Ridwan, yang selalu membimbing saya dengan sab...

Day 108 : H-2 menuju akhir PKL

Waktu rasanya berjalan begitu cepat. Hari ini sudah masuk H-2 menuju akhir masa PKL saya di PT Excellent. Ada perasaan campur aduk antara lega karena akhirnya berhasil menyelesaikan semuanya, senang karena banyak pengalaman baru yang saya dapatkan, tapi juga sedikit. PKL di PT Excellent bukan cuma soal kerjaan atau belajar teknis, tapi juga perjalanan penuh cerita dan pelajaran. Setiap hari yang saya jalani di sini selalu memberi pengalaman baru, baik dari tugas yang menantang, bimbingan dari mentor, maupun suasana kerja yang hangat. Salah satu hal yang paling membekas adalah semangat belajar dari Pak Bos. Beliau pernah bercerita tentang bagaimana sibuknya beliau tapi tetap bisa belajar bahasa baru bahkan lebih dari satu bahasa. Itu benar-benar membuka mata saya, bahwa waktu senggang yang sering terbuang sebenarnya bisa dimanfaatkan untuk hal-hal yang lebih produktif. Mas Ridwan, yang selalu menemani kami saat briefing pagi, juga memberikan banyak pelajaran berharga. Setiap pagi kami b...

Day 82 : Membuat image dengan bahasa pemrograman golang

Hari ini, saya melanjutkan perjalanan belajar Docker dengan memanfaatkan Visual Studio Code (VSCode), editor favorit saya. Fokus utama saya adalah memahami cara membuat Docker image menggunakan alur kerja yang terintegrasi dengan VSCode. Proses ini tidak hanya efisien tetapi juga menyenangkan karena VSCode memiliki ekosistem yang kaya, termasuk berbagai ekstensi pendukung yang mempermudah pekerjaan. Mengapa Menggunakan VSCode untuk Docker? VSCode menyediakan lingkungan pengembangan yang lengkap dengan berbagai fitur, seperti: Docker Extension : Mempermudah pengelolaan image, container, dan jaringan Docker langsung dari editor. Terminal Terintegrasi : Menjalankan perintah Docker langsung dari VSCode tanpa perlu beralih aplikasi. Debugging Tools : Membantu melacak masalah aplikasi yang berjalan di dalam container, terutama bagi pengembang Golang. Dengan semua keunggulan ini, VSCode menjadi alat yang sangat mendukung dalam pengembangan berbasis Docker. Langkah-langkah Membuat Docker Image...