Panduan Pemula untuk Docker Networking
Hai sana, para maestro masa depan Docker! Saya sangat senang menjadi panduan Anda dalam perjalanan menarik ke dunia jaringan Docker. Sebagai seseorang yang telah mengajar ilmu komputer selama tahun tahun, saya bisa katakan bahwa memahami jaringan Docker seperti belajar menavigasi jalan yang sibuk di kota baru - mungkin terlihat menakutkan pada awalnya, tapi sekali Anda mendapat tahu, Anda akan bergerak seperti penduduk setempat dalam waktu singkat!
Apa Itu Docker Networking?
Sebelum kita masuk ke detail, mari mulai dari dasar. Jaringan Docker adalah bagaimana kontainer Docker berkomunikasi satu sama lain dan dengan dunia luar. Bayangkan itu seperti sistem pos untuk kontainer Anda - itu adalah cara mereka mengirim dan menerima pesan serta data.
Menampilkan Semua Jaringan Docker
Mari mulai petualangan kita dengan belajar bagaimana melihat jaringan yang tersedia dalam lingkungan Docker kita. Itu seperti memeriksa peta kota baru kita untuk melihat rute yang bisa kitaambil.
Untuk menampilkan semua jaringan Docker, kita gunakan perintah ini:
docker network ls
Ketika Anda menjalankan perintah ini, Anda akan melihat output seperti ini:
NETWORK ID NAME DRIVER SCOPE
9f904ee27bf5 bridge bridge local
95e74588f40d host host local
6dd90d006c9b none null local
Mari kitauraikan ini:
- NETWORK ID: Identifikasi unik untuk setiap jaringan
- NAME: Nama jaringan
- DRIVER: Driver jaringan yang digunakan (kita akan membahas ini lebih lanjut)
- SCOPE: Cakrawala jaringan (lokal ke host Docker atau swarm)
Memeriksa Jaringan Docker
Sekarang kita bisa melihat jaringan kita, mari kita periksa salah satu dari mereka. Itu seperti memperbesar jalan tertentu di peta kita.
Untuk memeriksa jaringan Docker, kita gunakan:
docker network inspect [NETWORK NAME]
Misalnya, mari kita periksa jaringan default 'bridge':
docker network inspect bridge
Perintah ini akan mengembalikan banyak informasi detil tentang jaringan dalam format JSON. Itu seperti mendapatkan laporan detil tentang segala sesuatu yang terjadi di jalan itu - siapa yang tinggal disana, bagaimana rumahnya terlihat, dll.
Membuat Jaringan Baru Sendiri
Baiklah, sekarang kita siap membuat jalan sendiri! Membuat jaringan baru di Docker sangat sederhana:
docker network create [OPTIONS] [NETWORK NAME]
Mari kita buat jaringan bridge sederhana:
docker network create my_awesome_network
Selamat! Anda baru saja membuat jaringan Docker pertama Anda. Itu seperti Anda baru saja menempatkan jalan baru di kota Docker kita.
Untuk memverifikasi bahwa jaringan kita telah dibuat, kita bisa menggunakan perintah docker network ls
yang dapat dipercaya lagi:
docker network ls
Anda sekarang应该 melihat jaringan baru Anda di daftar!
Driver Jaringan
Dalam Docker, driver jaringan adalah seperti jenis-jenis jalan yang berbeda. Mari kita lihat jenis utama:
Driver | Deskripsi |
---|---|
Bridge | Driver default. Baik untuk kontainer tunggal yang perlu berkomunikasi. |
Host | Menghapus isolasi jaringan antara kontainer dan host Docker. |
Overlay | Digunakan untuk menghubungkan beberapa daemon Docker bersamaan. Baik untuk layanan swarm. |
Macvlan | Memungkinkan Anda memberikan alamat MAC ke kontainer, membuatnya tampak seperti perangkat fisik di jaringan Anda. |
None | Menonaktifkan semua jaringan untuk kontainer. |
Saat membuat jaringan, Anda dapat menentukan driver. Misalnya:
docker network create --driver overlay my_overlay_network
Ini membuat jaringan overlay baru, yang bagus saat Anda bekerja dengan Docker Swarm.
Menghubungkan Kontainer ke Jaringan
Sekarang kita memiliki jaringan, mari kita belajar bagaimana menghubungkan kontainer kita kepadanya. Itu seperti memutuskan jalan mana rumah kita (kontainer) harus berada.
Saat Anda menjalankan kontainer baru, Anda dapat menentukan jaringan mana yang harus dihubungkan:
docker run --network=my_awesome_network nginx
Perintah ini menjalankan kontainer nginx dan menghubungkannya ke 'my_awesome_network'.
Anda juga dapat menghubungkan kontainer yang sudah ada ke jaringan:
docker network connect my_awesome_network my_existing_container
Dan jika Anda ingin memutuskan koneksi kontainer dari jaringan:
docker network disconnect my_awesome_network my_existing_container
Contoh Dunia Nyata
Mari kita gabungkan semua ini dengan contoh praktis. Bayangkan kita sedang membuat aplikasi web sederhana dengan frontend dan backend. Kita ingin kontainer ini bisa berkomunikasi satu sama lain, tapi kita tidak ingin mengekspose backend ke dunia luar.
Pertama-tama, mari kita buat jaringan kita:
docker network create my_app_network
Sekarang, mari kita jalankan kontainer backend dan menghubungkannya ke jaringan kita:
docker run --name backend --network=my_app_network -d my-backend-image
Dan akhirnya, kontainer frontend kita:
docker run --name frontend --network=my_app_network -p 80:80 -d my-frontend-image
Sekarang frontend dan backend kontainer kita bisa berkomunikasi satu sama lain melalui 'my_app_network', tapi hanya frontend yang diekspose ke dunia luar melalui port 80.
Kesimpulan
Dan itu dia, teman-teman! Kita telah mengembara melalui dasar-dasar jaringan Docker, dari menampilkan dan memeriksa jaringan hingga membuat sendiri dan menghubungkan kontainer. Ingat, seperti setiap keterampilan, memahami jaringan Docker memerlukan latihan. Jangan takut untuk mencoba dan mencoba konfigurasi yang berbeda.
Saat kita mengakhiri, saya diperingatkan tentang seorang murid yang pernah katakan kepadaku bahwa belajar jaringan Docker rasa seperti belajar berenang - pada awalnya, Anda merasa seperti tenggelam di informasi, tapi sekali Anda mendapat tahu, Anda akan mengapung dengan mudah melalui konsep-konsep ini!
Selamat ber-Docker, dan semoga kontainer Anda selalu menemukan jalan pulang!
Credits: Image by storyset