Arsitektur & Ekosistem Komponen Docker
Docker menggunakan arsitektur Client-Server. Saat Anda mengetikkan perintah docker di terminal, Anda sedang berinteraksi dengan Docker Client yang mengirimkan instruksi ke Docker Daemon.
Komponen Utama Arsitektur Docker:
1. Docker Client (CLI)
Alat baris perintah (command line) tempat pengguna mengetikkan perintah seperti docker run, docker build, atau docker ps.
2. Docker Host & Daemon (dockerd)
Service background yang terus berjalan di host OS. Docker Daemon bertugas mengelola objek-objek Docker (Images, Containers, Networks, Volumes) dan mendengarkan permintaan REST API dari Client.
3. Docker Registry (Docker Hub)
Gudang penyimpanan Docker Images (seperti GitHub untuk kode). **Docker Hub** adalah registry publik resmi tempat kita mengunduh image gratis seperti Nginx, Node.js, Python, PostgreSQL, dll.
4 Objek Utama Docker (Docker Objects):
- Image: Template read-only yang berisi cetak biru (blueprint) aplikasi & lingkungan.
- Container: Instance yang sedang berjalan (runnable instance) dari suatu Image.
- Network: Jalur komunikasi antar kontainer dan internet.
- Volume: Tempat penyimpanan data permanen di luar siklus hidup kontainer.
[ Docker Client ] ---> REST API ---> [ Docker Daemon (dockerd) ]
(docker run) |-- Images
|-- Containers
|-- Networks
|-- Volumes
^
| Pull / Push
[ Docker Registry (Hub) ]