Hari ini saya belajar kalau expose di Docker Compose sebenarnya tetap penting, walaupun tidak benar-benar membuka port ke host seperti ports.
Setelah membaca artikel perbandingan expose dan ports, saya baru paham bahwa expose berfungsi untuk memberi tahu container lain dalam jaringan yang sama port mana yang digunakan oleh service — tanpa membuatnya bisa diakses dari luar.
Contohnya:
services:
backend:
build: ./backend
expose:
- "4000"
frontend:
build: ./frontend
depends_on:
- backend
Di sini, frontend bisa mengakses backend lewat http://backend:4000,
tapi host (komputer saya) tidak bisa langsung mengaksesnya — dan itu memang tujuannya.
Yang saya pelajari:
exposedigunakan untuk komunikasi internal, sedangkanportsuntuk akses eksternal.- Membantu mendokumentasikan port internal antar service.
- Menjaga keamanan dengan tidak membuka port sensitif ke luar.
- Membuat arsitektur jaringan container lebih jelas dan mudah dipahami.
Detail kecil, tapi memberi manfaat besar — terutama saat konfigurasi Compose makin kompleks.

#TIL - Kenapa expose di `Docker Compose` Masih Penting
TIL bahwa expose di Docker Compose bukan hanya hiasan — tapi penting untuk dokumentasi internal, keamanan, dan kejelasan antar service.
