Docker
Docker adalah alat untuk menjalankan aplikasi di dalam container. Container membungkus aplikasi dan dependensinya, sehingga environment di laptop, staging, dan server bisa lebih konsisten. Docker bukan mesin virtual. Container berbagi kernel host dan biasanya lebih ringan daripada VM.
Istilah inti
| Istilah | Arti |
|---|---|
| Image | Template read-only berisi aplikasi dan dependensi |
| Container | Instance yang berjalan dari image |
| Volume | Penyimpanan persisten di luar siklus hidup container |
| Network | Jaringan virtual yang menghubungkan container |
| Dockerfile | Resep untuk membangun image |
Image tidak berubah saat container berjalan. Kalau Anda mengubah file di dalam container, perubahan itu hilang saat container dibuat ulang, kecuali disimpan di volume.
Alur dasar
Buat Dockerfile, lalu jalankan docker build -t aplikasi:1.0 .. Setelah image terbentuk, jalankan docker run -d --name aplikasi -p 3000:3000 aplikasi:1.0. Untuk beberapa layanan, gunakan Docker Compose agar network dan volume didefinisikan dalam satu file.
Data database harus berada di volume, bukan di filesystem container. Contohnya -v db-data:/var/lib/mysql. Kalau tidak, data bisa hilang saat container dihapus.
Yang perlu diperhatikan
Setiap container memakai RAM dan disk. Di VPS 1 sampai 2 GB, jalankan hanya layanan yang benar-benar perlu, batasi memory, dan pantau ukuran image. Gunakan docker system prune secara berkala, tetapi jangan menghapus volume yang masih dipakai.
Jangan expose Docker socket ke publik. Socket itu memberi akses setara root. Untuk produksi, simpan image di registry dan deploy dengan tag versi yang jelas, bukan latest. Pisahkan database dari container aplikasi bila memungkinkan.
Docker juga bisa melewati aturan firewall host. Port yang dipublikasikan dengan -p bisa terbuka meskipun UFW memblokirnya. Uji dari mesin lain dan atur aturan DOCKER-USER. Lihat Firewall Linux untuk konteks.
Konteks
Docker sering dipakai bersama CI/CD Deployment dan Snapshot VPS. Kalau Anda memilih serverless, lihat Serverless untuk batas dan biayanya.
Di produksi, gunakan Docker Compose atau orchestrator kecil agar dependensi antar-container jelas. Tambahkan healthcheck, batas memory, dan kebijakan restart. docker logs dan docker stats membantu melihat error serta pemakaian resource. Jangan hanya mengandalkan status container karena container bisa hidup tetapi aplikasinya gagal.
Simpan konfigurasi Compose di version control agar perubahan bisa ditinjau. Jalankan docker compose config sebelum deploy untuk memeriksa variabel dan volume. Uji restart container untuk memastikan data tetap ada.
FAQ
Apakah Docker sama dengan virtual machine?
Tidak. VM menjalankan sistem operasi sendiri. Container berbagi kernel host dan mengisolasi proses, sehingga biasanya lebih ringan.
Mengapa data container saya hilang?
Data yang ditulis di filesystem container ikut hilang saat container dihapus. Simpan data penting di volume atau database eksternal.
Apakah Docker aman untuk produksi?
Bisa, kalau image diperbarui, container tidak berjalan sebagai root, socket tidak diekspos, dan port dibatasi. Docker bukan lapisan keamanan tunggal.
Disclaimer: Artikel WikiHosting disusun untuk tujuan edukasi dan referensi. Teknologi hosting terus berkembang, sehingga beberapa informasi teknis mungkin berubah seiring waktu.
