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!

Docker - Networking

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