
Anda merasa laptop atau server Anda tiba-tiba melambat saat menjalankan beberapa container Docker sekaligus? Banyak pengguna baru Docker di Linux mengalami hal yang sama — kontainer berjalan, tetapi performanya terasa berat, memori cepat penuh, atau CPU terus bekerja keras tanpa henti.
Masalah ini bukan karena Docker “buruk”, melainkan karena resource (CPU, RAM, dan disk) belum dikonfigurasi secara optimal. Tanpa pengaturan yang tepat, Docker akan menggunakan sumber daya sistem semaunya — yang bisa menyebabkan performa menurun dan sistem menjadi tidak stabil.
Artikel ini akan menjadi panduan lengkap dan praktis untuk membantu Anda memahami cara mengoptimalkan penggunaan resource Docker di Linux. Anda akan belajar:
- Cara memeriksa penggunaan resource Docker.
- Cara membatasi CPU, RAM, dan disk agar lebih efisien.
- Tips tambahan agar container tetap ringan dan cepat.
Apa Itu Resource Docker dan Mengapa Penting?
Secara default, Docker berjalan dengan akses penuh ke resource sistem. Artinya, semua container berbagi CPU, RAM, dan storage host tanpa batas yang jelas.
Jika Anda menjalankan banyak container sekaligus, sistem Linux bisa kewalahan. Oleh karena itu, Anda perlu membatasi resource per container agar semua aplikasi berjalan stabil dan efisien.
1. Mengecek Penggunaan Resource Docker
Sebelum mengoptimalkan, pastikan Anda tahu berapa banyak resource yang sedang digunakan oleh container. Jalankan perintah berikut di terminal:
docker statsPerintah ini menampilkan daftar container aktif beserta penggunaan CPU, memori, network I/O, dan disk I/O secara real-time.
💡 Tips: Gunakan kombinasi
docker stats --no-streamjika Anda hanya ingin melihat snapshot cepat tanpa tampilan real-time.
2. Membatasi Penggunaan CPU
Jika sebuah container tidak dibatasi, ia bisa menggunakan semua core CPU yang tersedia. Anda bisa membatasi jumlah core yang boleh digunakan agar sistem tetap responsif.
Contoh: Batasi container agar hanya memakai 1 core CPU:
docker run --cpus="1.0" nginxAtau batasi persentase CPU:
docker run --cpu-quota=50000 --cpu-period=100000 nginxArtinya, container hanya dapat menggunakan 50% dari satu core CPU.
3. Membatasi Penggunaan RAM
Container tanpa batas memori bisa menyebabkan sistem swap atau bahkan crash. Untuk mencegah hal itu, gunakan opsi --memory.
Contoh:
docker run -d --memory="512m" --memory-swap="1g" nginx--memory="512m"→ Maksimum RAM 512MB.--memory-swap="1g"→ Termasuk swap maksimal 1GB.
🔒 Catatan: Pastikan Anda tidak mengatur nilai swap lebih kecil dari memori utama, agar tidak terjadi error.
4. Membatasi Penyimpanan (Disk Space)
Setiap container menggunakan layer storage yang bisa membengkak dari waktu ke waktu. Anda dapat memantau dan membatasi ukuran penyimpanan agar disk tidak cepat penuh.
Cek penggunaan disk:
docker system dfMembersihkan cache, image, dan container yang tidak terpakai:
docker system prune -aMembatasi ukuran log container:
docker run -d \
--log-opt max-size=10m \
--log-opt max-file=3 \
nginxDengan begitu, log container tidak akan melebihi 10MB per file, dan hanya 3 file log yang disimpan.
5. Membatasi Resource Secara Global di Docker Daemon
Selain per container, Anda juga bisa membatasi resource di level sistem. Edit file konfigurasi Docker daemon:
sudo nano /etc/docker/daemon.jsonTambahkan konfigurasi seperti:
{
"default-ulimits": {
"nofile": {
"Name": "nofile",
"Hard": 4096,
"Soft": 1024
}
}
}Lalu restart service Docker agar pengaturan berlaku:
sudo systemctl restart docker⚙️ Dengan cara ini, setiap container baru otomatis mengikuti batasan global tanpa perlu konfigurasi ulang satu per satu.
Sekarang Anda sudah tahu cara mengontrol dan mengoptimalkan resource Docker di Linux, mulai dari CPU, RAM, hingga storage. Dengan konfigurasi yang tepat, Anda bisa menjaga performa server tetap cepat, stabil, dan efisien bahkan saat banyak container berjalan bersamaan.
Jika Anda ingin melangkah lebih jauh,
baca juga artikel kami berikut: Cara Mengamankan Container Docker di Linux.
