Langsung ke konten utama

Day 81: Mengubungkan 2 container dengan network

Pada hari ke-81 ini, saya melanjutkan pembahasan dari konsep jaringan di Docker yang sudah dibahas kemarin. Jika di hari ke-80 saya menjelaskan cara membuat network dalam Docker, hari ini saya akan menjelaskan cara menghubungkan container satu dengan container lainnya menggunakan network tersebut. Dengan memahami langkah-langkah ini, kita bisa membangun aplikasi yang terdiri dari beberapa container yang saling terhubung dengan mudah dan aman tanpa perlu mengekspos port ke host.




Docker network adalah salah satu fitur paling kuat dalam Docker. Dengan network ini, kita bisa menghubungkan beberapa container sehingga mereka bisa saling berkomunikasi dalam lingkungan yang aman dan terisolasi. Bayangkan saja, Anda memiliki aplikasi yang menggunakan berbagai layanan, misalnya aplikasi backend, database, dan cache. Dengan Docker network, kita bisa membuat mereka berkomunikasi tanpa konflik atau masalah keamanan.

Langkah-Langkah Menghubungkan Container Menggunakan Network

1. Membuat Docker Network Baru

Langkah pertama, kita perlu membuat network yang nantinya akan digunakan untuk menghubungkan container-container kita. Misalnya, kita buat network bernama contoh-network dengan perintah berikut:

docker network create --driver bridge contohnetwork

Network contohnetwork ini akan menjadi penghubung antara container yang akan kita buat.

2. Menjalankan Container Pertama dalam Network yang Sama

Setelah network siap, kita bisa menjalankan container pertama, misalnya container Redis, yang akan kita gunakan sebagai database atau cache. Ketika menjalankan container, kita tambahkan opsi --network untuk menghubungkannya ke network yang sudah kita buat:

docker run -d --name contoh-network --network contohnetwork shefaimage:latest

Dalam perintah ini, contoh-network adalah nama container, dan redis adalah image yang kita gunakan. Dengan perintah ini, Redis akan berjalan dalam network contohnetwork yang sudah kita buat, dan siap terhubung dengan container lain di network yang sama.

3. Menjalankan Container Kedua dan Menghubungkannya ke Network yang Sama

Sekarang, kita jalankan container kedua, yaitu contoh-network2, yang akan terhubung ke Redis. Karena kita ingin container ini bisa berkomunikasi dengan Redis, kita juga perlu menghubungkannya ke network contohnetwork yang sama:

docker run -d --name contoh-network2 --network contohnetwork shefaimage:latest

Dengan begitu, click_counter sekarang berada di dalam app_network, yang sama dengan redis_container. Hal ini memungkinkan kedua container untuk saling mengenali dan berkomunikasi tanpa konflik.

4. Berkomunikasi Antar-Container Menggunakan Hostname

Di dalam network contohnetwork, container dapat saling berkomunikasi menggunakan hostname berdasarkan nama container. Jadi, contoh-network bisa berkomunikasi dengan contoh-network2 melalui hostname contoh-network2.

Misalnya, jika dalam kode aplikasi contoh-network Anda ingin menghubungkan ke Redis, Anda bisa menggunakan alamat contoh-network:6379.

Anda bisa memverifikasi koneksi antar-container dengan menjalankan perintah ping dari dalam container contoh-network ke contoh-network2:

docker exec -it contoh-network ping contohnetwork

Jika konfigurasi jaringan sudah benar, Anda akan melihat balasan ping, yang menunjukkan bahwa contoh-network dapat berkomunikasi dengan contoh-network2 di dalam contohnetwork.

5. Memeriksa dan Mengelola Network

Docker menyediakan beberapa perintah untuk memantau dan mengelola network. Misalnya:

  • Melihat Network yang Ada:

    docker network ls
  • Memeriksa Container yang Terhubung di Network Tertentu:

    docker network inspect contoh-network
  • Menghapus Network (Setelah Semua Container Dilepas):

    docker network rm contoh-network

Dengan begitu, Anda tidak hanya membuat network dan menghubungkan container, tapi juga memiliki kontrol penuh untuk melihat koneksi yang ada dan menghapus network jika sudah tidak digunakan lagi.


Dengan cara ini, kita bisa membangun aplikasi yang terdiri dari beberapa container yang saling berkomunikasi dalam lingkungan yang aman. Menggunakan Docker network membuat arsitektur aplikasi yang kompleks menjadi lebih mudah dan memungkinkan kita memisahkan berbagai layanan dalam container yang terisolasi namun tetap saling terhubung. Ini adalah langkah penting untuk mencapai arsitektur aplikasi yang modern dan terdistribusi.

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...