Lewati ke konten utama

Docker Stop All Containers: Panduan Langkah demi Langkah

Pelajari cara menghentikan semua container Docker yang sedang berjalan menggunakan perintah sederhana. Ini akan membantu Anda mengelola sumber daya sistem dan merapikan lingkungan Docker Anda.
Diperbarui 28 Sep 2026  · 5 mnt Baca

Jelajahi bersama AI

ChatGPTClaudePerplexity

Menghentikan container satu per satu dapat memperlambat alur kerja pengembangan Anda dan menimbulkan kesalahan saat menangani microservices atau aplikasi multi-container. 

Dalam panduan ini, saya akan membahas beberapa metode untuk membantu Anda menghentikan semua container yang sedang berjalan.

Pada akhir tutorial ini, Anda akan dapat:  

  • Memahami bagaimana Docker menangani sinyal dan masa tenggang (grace period)
  • Menghentikan semua container menggunakan teknik CLI sederhana dan filter
  • Memanfaatkan Docker Compose dan alias khusus untuk alur kerja yang lebih efisien 

Memahami Terminasi Container Docker

Sebelum menghentikan container secara massal, ada baiknya memahami bagaimana Docker mengatur proses shutdown di balik layar.

Manajemen proses berbasis sinyal

Docker menggunakan sinyal Unix untuk meminta penghentian secara tertib (graceful) sebelum melakukan terminasi paksa. Perilaku bawaan perintah docker stop adalah: 

  1. Mengirim SIGTERM ke proses utama container.  
  2. Menunggu hingga 10 detik (dapat dikonfigurasi dengan -t/--time).  
  3. Mengirim SIGKILL jika proses belum keluar.
  • SIGTERM: Meminta dengan sopan agar proses melakukan pembersihan dan keluar.  
  • Masa tenggang (grace period): Memberi waktu bagi aplikasi untuk membuang log, menutup koneksi, atau menyimpan status.  
  • SIGKILL: Memaksa terminasi segera pada proses yang tidak responsif.

Garis waktu yang menggambarkan urutan sinyal docker stop: SIGTERM, menunggu, lalu SIGKILL.

Mekanisme command-line interface (CLI)

Secara bawaan, docker stop menangani satu container pada satu waktu. Anda dapat memperluasnya untuk menghentikan banyak container menggunakan fitur shell.

# Stop a single container named my_container
docker stop my_container

Perintah ini mengirim SIGTERM ke my_container dan menunggu 10 detik bawaan sebelum mengirim SIGKILL jika diperlukan.

# Stop all running containers at once
docker stop $(docker ps -q)

Di sini, docker ps -q mencantumkan ID semua container yang sedang berjalan; ID tersebut diteruskan ke docker stop, yang mematikan container secara berurutan.

Sesi terminal yang mengalirkan docker ps -q ke docker stop untuk mematikan semua container.

Tangkapan layar terminal yang menampilkan output docker ps -q dialirkan ke docker stop

Untuk pemahaman yang lebih mendalam tentang konsep ini, pertimbangkan untuk mempelajari Konsep Kontainerisasi dan Virtualisasi.

Perbandingan docker stop dan docker kill

Memilih antara penghentian yang tertib dan yang paksa membantu Anda menghindari konsekuensi yang tidak diinginkan.

Penghentian tertib vs. langsung

Perintah

Sinyal

Perilaku

Kasus penggunaan

docker stop

SIGTERM → SIGKILL setelah batas waktu

Shutdown tertib dengan waktu pembersihan

Pemeliharaan rutin atau pembaruan

docker kill

SIGKILL

Terminasi langsung  

Perbaikan darurat untuk container yang hang

Kustomisasi sinyal

Kedua perintah mendukung flag --signal untuk mengganti nilai bawaan:

# Send SIGINT instead of SIGTERM
docker stop --signal=SIGINT my_container

Perintah di atas memungkinkan proses menangkap SIGINT untuk pembersihan khusus.

# Kill all containers with SIGUSR1
docker kill --signal=SIGUSR1 $(docker ps -q)

Seperti terlihat di atas, Anda dapat menggunakan sinyal khusus ketika aplikasi Anda menerapkan hook shutdown spesifik.

Strategi Lanjutan untuk Menghentikan Container

Memfilter dan mengotomatiskan penghentian container memungkinkan alur kerja DevOps yang lebih presisi, terutama di lingkungan skala besar.  

Setelah memahami dasar-dasarnya, Anda dapat menyetel dengan lebih halus container mana yang dihentikan dan bagaimana prosesnya diotomatisasi.

Terminasi container dengan filter

Filter memungkinkan Anda menargetkan container berdasarkan atribut seperti nama image, status, atau label:

# Stop containers running the my_image:latest image
docker stop $(docker ps --filter "ancestor=my_image:latest" -q)

Perintah di atas hanya menghentikan container yang berbasis pada my_image:latest, memberikan kontrol terarah dalam proyek multi-layanan.

Kasus penggunaan:  

  • Hentikan container uji berdasarkan tag image (--filter "ancestor=test:latest")  
  • Hentikan container berdasarkan label (--filter "label=env=dev")

Memfilter output docker ps berdasarkan nama image ancestor sebelum menghentikan container.

Tangkapan layar terminal penggunaan docker ps --filter

Pembersihan otomatis dengan Docker Compose

Jika layanan Anda didefinisikan dalam file docker-compose.yml, satu perintah akan menghentikan semua container terkait:

docker-compose stop

Ini menghormati dependensi layanan dan batas waktu yang dikonfigurasi untuk shutdown yang bersih.

Untuk teknik yang lebih lanjut, Anda dapat mempertimbangkan kursus Intermediate Docker.

Optimasi alur kerja berbasis alias

Untuk tugas berulang, alias shell mengurangi pengetikan dan perpindahan konteks:

# Add this to ~/.bashrc or ~/.zshrc
alias ds='docker stop $(docker ps -q)'

Setelah Anda memuat ulang shell, menjalankan ds akan menghentikan semua container dalam satu ketukan—ideal untuk pembersihan cepat.

Terminal yang menampilkan penggunaan alias kustom 'ds' untuk menghentikan semua container Docker yang sedang berjalan di Ubuntu WSL.

Menggunakan alias 'ds' untuk menghentikan semua container yang sedang berjalan di Ubuntu WSL

Praktik Operasional Terbaik

Terapkan rutinitas shutdown yang aman dan pembersihan berkala untuk menjaga lingkungan Anda tetap stabil dan berkinerja baik.

  • Terapkan penangkap sinyal (signal handler) dalam kode aplikasi Anda untuk menutup koneksi dan membuang log.  
  • Gunakan docker kill hanya untuk intervensi darurat; hindari inkonsistensi data.  
  • Sesuaikan masa tenggang (-t/--time) berdasarkan kebutuhan pembersihan aplikasi Anda.  
  • Otomatiskan pembersihan pasca-shutdown dengan perintah seperti docker system prune, seperti diuraikan dalam Docker Prune: Panduan Lengkap dengan Contoh Praktik.
  • Catat peristiwa shutdown (cap waktu dan kode keluar) untuk mendiagnosis masalah terminasi.

Memecahkan Masalah Umum

Bahkan perintah yang sederhana pun bisa menemui kendala—berikut cara menanganinya.

Proses zombie dan volume yatim piatu

Terminasi paksa dapat meninggalkan proses usang atau volume yatim piatu, yang mengonsumsi sumber daya host dan ruang disk. Untuk membersihkan:

# Remove dangling volumes
docker volume prune

Perintah ini menghapus semua volume yang tidak direferensikan oleh container mana pun.

Periksa proses daemon Docker yang masih tersisa:

ps aux | grep dockerd

Hentikan secara manual proses anak dockerd yang tersisa jika masih bertahan.

Kasus nyata: Dalam salah satu proyek, saya menggunakan docker kill pada container basis data saat migrasi macet. Penghentian mendadak mencegah DB membuang log transaksi, sehingga merusak tabel InnoDB. Kami harus memulihkan dari cadangan dan memutar ulang binlog, mengakibatkan lebih dari 30 menit downtime. Untuk menghindarinya, utamakan docker stop dengan batas waktu yang diperpanjang atau tambahkan penangan SIGTERM yang tepat di aplikasi Anda.

Galat permission denied

Menjalankan perintah Docker tanpa hak istimewa yang tepat sering memicu galat:

  • Tambahkan awalan sudo pada perintah atau jalankan sebagai pengguna dalam grup docker.  
  • Tambahkan pengguna Anda ke grup docker dan masuk kembali:
sudo usermod -aG docker $USER

Setelah keluar lalu masuk kembali, Anda dapat menjalankan perintah Docker tanpa sudo. Di lingkungan CI, pastikan pengguna runner memiliki keanggotaan grup Docker untuk menghindari kegagalan pipeline.

Pertimbangan khusus Windows

Di Windows PowerShell, bungkus subperintah dalam tanda kurung dan jalankan sebagai Administrator:

docker stop (docker ps -q)

Menjalankan PowerShell dengan hak istimewa yang ditingkatkan mencegah masalah firewall atau kontrol akses. Jika Anda melihat galat TLS handshake, verifikasi bahwa konfigurasi daemon Docker Desktop cocok dengan lingkungan PowerShell Anda.

Kesimpulan

Menghentikan semua container Docker Anda secara efisien menghemat waktu, menghemat sumber daya, dan meminimalkan kesalahan manusia dalam alur kerja pengembangan Anda. Anda dapat menjaga lingkungan tetap bersih dan prediktif dengan memahami penanganan sinyal Docker, memanfaatkan filter CLI, menggunakan Docker Compose, dan membuat alias sederhana. 

Jelajahi jalur Kontainerisasi dan Virtualisasi dengan Docker dan Kubernetes atau kursus Intermediate Docker untuk memperdalam keahlian kontainerisasi Anda.

Selamat berkontainer—semoga alur kerja Docker Anda bersih dan efisien!

FAQs

What exit code does docker stop return?

Jika berhasil, docker stop mengembalikan 0. Kode keluar non-nol menunjukkan satu atau lebih container gagal dihentikan.

Can I preview which containers will be stopped before running the command?

Ya—jalankan docker ps atau docker ps -q untuk mencantumkan container yang berjalan dan memverifikasi ID atau nama sebelum mengeksekusi docker stop.

How do restart policies affect stopped containers?

Container dengan kebijakan restart seperti always akan mulai ulang secara otomatis setelah dihentikan. Hapus atau ubah kebijakan dengan docker update --restart=no <container> jika Anda ingin tetap dihentikan.

Is there a way to stop containers by network or volume?

Meskipun Docker tidak langsung memfilter berdasarkan jaringan atau volume pada docker stop, Anda dapat mengombinasikan docker ps --filter "network=<name>" atau docker ps --filter "volume=<name>" dengan substitusi perintah.

How can I integrate docker stop into a CI/CD pipeline?

Integrasikan perintah stop ke dalam skrip build atau job CI—gunakan flag seperti --signal dan filter untuk penghentian terarah, lalu lanjutkan dengan perintah pembersihan (docker system prune) dalam pipeline yang sama.

Can I restart all stopped containers afterward?

Ya, gunakan docker start $(docker ps -a -q) untuk memulai ulang semua container, termasuk yang sebelumnya dihentikan.

Will stopping all containers remove them?

Tidak, menghentikan container tidak menghapusnya. Container tetap ada di sistem Anda hingga Anda menghapusnya dengan docker rm.

How can I automate stopping containers daily?

Gunakan cron job dengan perintah docker stop $(docker ps -q) untuk menjadwalkan penghentian otomatis.

Does docker stop affect volumes or networks?

Tidak, menghentikan container tidak memengaruhi volume atau jaringan yang terpasang—semuanya tetap utuh.

Can I exclude some containers from being stopped?

Anda dapat menghentikan container secara selektif dengan menggunakan docker ps beserta filter atau mengecualikan ID container tertentu dari perintah.

What tools can help manage containers beyond CLI commands?

Alat seperti Portainer atau Docker Desktop menawarkan manajemen berbasis GUI, sehingga pengendalian container lebih mudah bagi pemula.


Khalid Abdelaty's photo
Author
Khalid Abdelaty
LinkedIn

Saya seorang data engineer dan pembangun komunitas yang bekerja lintas pipeline data, cloud, dan perkakas AI sambil menulis tutorial praktis dan berdampak tinggi untuk DataCamp dan pengembang yang sedang berkembang.

Topik
Docker

Pelajari lebih lanjut tentang Docker dengan kursus-kursus ini!

{count, plural, one {Kursus} other {Kursus}}

Pengantar Docker

{hours} jam
52.5K
Dapatkan pengenalan tentang Docker dan temukan pentingnya dalam kotak alat profesional data. Pelajari tentang kontainer Docker, gambar, dan lainnya.
Lihat DetailRight Arrow
Mulai Kursus
Lihat SelengkapnyaRight Arrow
Terkait

{count, plural, one {blog} other {blogs}}

Spaghetti Plot dan Jalur Badai

Temukan alasan mengapa Anda sebaiknya (tidak) menggunakan spaghetti plot untuk menyampaikan ketidakpastian jalur prediksi badai serta dampaknya terhadap interpretasi.
Hugo Bowne-Anderson's photo

Hugo Bowne-Anderson

13 mnt

{count, plural, one {blog} other {blogs}}

40 Pertanyaan Wawancara DBMS Teratas di 2026

Kuasai pertanyaan wawancara basis data, dari konsep SQL dasar hingga skenario desain sistem tingkat lanjut. Panduan mendalam ini mencakup semua yang Anda perlukan untuk sukses di wawancara DBMS dan meraih peran berikutnya.
Dario Radečić's photo

Dario Radečić

15 mnt

{count, plural, one {blog} other {blogs}}

Tutorial Korelasi di R

Dapatkan pengenalan dasar-dasar korelasi di R: pelajari lebih lanjut tentang koefisien korelasi, matriks korelasi, plotting korelasi, dan sebagainya.
David Woods's photo

David Woods

13 mnt

{count, plural, one {blog} other {blogs}}

12 Alternatif ChatGPT Terbaik yang Bisa Anda Coba pada 2026

Artikel ini menyajikan daftar alternatif ChatGPT yang akan meningkatkan produktivitas Anda.
Javier Canales Luna's photo

Javier Canales Luna

14 mnt

Lihat SelengkapnyaLihat Selengkapnya