Perintah Dasar Docker yang Wajib Dikuasai Pemula
Perintah dasar Docker yang benar-benar kamu pakai setiap hari sebenarnya tidak banyak. Intinya ada di daftar ini: docker ps -a untuk melihat semua container, docker images untuk melihat image, docker stop, docker start, dan docker restart untuk mengatur hidup matinya container, docker rm dan docker rmi untuk bersih-bersih, lalu docker logs, docker inspect, dan docker system df untuk memeriksa kondisi. Kuasai belasan perintah ini dan kamu sudah bisa mengelola container harian tanpa panik.
Artikel ini bagian ketiga dari seri Belajar Docker dari Nol. Kita tidak akan menghafal semua perintah satu per satu. Kita jalankan tiga container sekaligus, periksa kondisinya, lalu bersihkan semuanya dengan urutan yang benar. Cara ini lebih nempel di kepala daripada membaca daftar perintah panjang.
Prasyarat Sebelum Latihan Perintah Docker
Pastikan Docker sudah terinstal dan bisa jalan tanpa error. Di tutorial ini saya memakai Docker Engine 28.3 di Ubuntu 24.04, tapi semua perintah di sini sama saja di Windows dengan Docker Desktop atau di macOS. Cek dulu versimu:
docker --version
Output yang diharapkan kurang lebih seperti ini:
Docker version 28.3.2, build 578ccf6
Kamu juga perlu paham beda image dan container, karena hampir semua perintah di artikel ini menyasar salah satunya. Kalau masih ragu bedanya, baca dulu bagian sebelumnya: Perbedaan Docker Image dan Container + Praktik Pertama. Singkatnya, image itu cetakan, container itu hasil cetakannya yang berjalan.
Peta Perintah Dasar Docker untuk Pemakaian Harian
Supaya tidak bingung perintah mana untuk apa, pakai tabel ini sebagai peta. Kolom target penting: banyak pemula tertukar antara perintah untuk container dan perintah untuk image.
| Perintah | Target | Fungsi |
|---|---|---|
docker ps |
Container | Melihat container yang sedang berjalan |
docker ps -a |
Container | Melihat semua container, termasuk yang sudah berhenti |
docker images |
Image | Melihat daftar image di komputer |
docker stop |
Container | Menghentikan container yang berjalan |
docker start |
Container | Menyalakan lagi container yang berhenti |
docker restart |
Container | Stop lalu start dalam satu perintah |
docker rm |
Container | Menghapus container yang sudah berhenti |
docker rmi |
Image | Menghapus image yang tidak dipakai container mana pun |
docker logs |
Container | Melihat output aplikasi di dalam container |
docker inspect |
Keduanya | Melihat detail lengkap dalam format JSON |
docker system df |
Disk | Melihat total pemakaian disk oleh Docker |
Pola yang perlu kamu ingat: perintah berakhiran i seperti rmi bekerja pada image. Sisanya kebanyakan bekerja pada container. Urutan hidup container juga selalu sama: dibuat, berjalan, berhenti, dihapus. docker rm hanya mau menghapus container yang sudah di posisi berhenti, dan docker rmi hanya mau menghapus image yang sudah tidak dipakai container mana pun. Urutan ini yang akan kita praktikkan.
Praktik: Jalankan Tiga Container Sekaligus
Kita jalankan tiga container dari tiga image berbeda supaya terasa mengelola lebih dari satu layanan, mirip kondisi nyata di server. Jalankan tiga perintah ini satu per satu:
docker run -d --name web-satu nginx:1.27-alpine
docker run -d --name cache-satu redis:7.4-alpine
docker run -d --name web-dua httpd:2.4-alpine
Opsi -d membuat container berjalan di belakang layar, dan --name memberi nama supaya gampang dipanggil. Detail mode detach kita bahas di bagian berikutnya dari seri ini. Sekarang cek yang sedang berjalan:
docker ps
Outputnya kurang lebih begini, tiga baris untuk tiga container:
CONTAINER ID IMAGE COMMAND STATUS NAMES
f3a1b2c4d5e6 httpd:2.4-alpine "httpd-foreground" Up 10 seconds web-dua
a9b8c7d6e5f4 redis:7.4-alpine "docker-entrypoint.s…" Up 25 seconds cache-satu
1c2d3e4f5a6b nginx:1.27-alpine "/docker-entrypoint.…" Up 40 seconds web-satu
Sekarang hentikan salah satunya, lalu bandingkan docker ps dengan docker ps -a:
docker stop web-dua
docker ps
docker ps -a
docker ps hanya menampilkan dua container. Tapi docker ps -a tetap menampilkan tiga, dengan web-dua berstatus Exited (0). Ini konsep yang paling sering bikin pemula bingung: container yang berhenti itu tidak hilang. Dia masih ada di disk, lengkap dengan namanya. Kamu bisa menyalakannya lagi kapan saja:
docker start web-dua
Kalau aplikasi di dalam container terasa aneh dan kamu ingin muat ulang, pakai docker restart web-dua. Isinya tetap sama, prosesnya saja yang dimulai ulang.
Bersihkan Semua Container dengan Urutan yang Benar
Selesai latihan, bersihkan. Urutannya selalu stop dulu, baru hapus container, baru hapus image kalau memang tidak dibutuhkan lagi:
docker stop web-satu cache-satu web-dua
docker rm web-satu cache-satu web-dua
docker rmi nginx:1.27-alpine redis:7.4-alpine httpd:2.4-alpine
Perhatikan bahwa satu perintah bisa menerima banyak nama sekaligus. Setelah itu docker ps -a harus kosong dan docker images tidak lagi menampilkan ketiga image tadi. Kalau containermu banyak dan malas mengetik nama satu per satu, ada jurus cepat:
docker stop $(docker ps -q)
docker rm $(docker ps -aq)
Opsi -q artinya quiet, hanya mencetak ID container. Hasilnya disuapkan ke stop dan rm. Hati-hati, perintah ini menyapu semua container di mesinmu, jadi jangan dipakai di server yang ada container pentingnya.
Membaca Output docker logs dan docker inspect
Dua perintah ini adalah mata kamu ke dalam container. Di pekerjaan tim Arrazy sehari-hari, saat backend Go atau Laravel milik klien berjalan di container dan ada yang aneh, dua perintah inilah yang pertama kami buka sebelum menebak-nebak. Jalankan satu container lagi untuk mencoba:
docker run -d --name web-tes nginx:1.27-alpine
docker logs web-tes
docker logs menampilkan semua output yang dicetak aplikasi di dalam container. Untuk nginx, kamu akan melihat baris seperti ini:
/docker-entrypoint.sh: Configuration complete; ready for start up
2026/07/27 03:15:42 [notice] 1#1: start worker processes
Kalau container mati mendadak, docker logs biasanya berisi pesan error penyebabnya. Ini tempat pertama untuk mencari petunjuk. Dua opsi yang sering dipakai: docker logs -f web-tes untuk mengikuti log secara live seperti tail -f, dan docker logs --tail 50 web-tes untuk mengambil 50 baris terakhir saja.
Sementara docker inspect menampilkan konfigurasi dan status lengkap dalam format JSON. Outputnya panjang sekali, jadi biasanya kita ambil bagian tertentu dengan opsi --format:
docker inspect --format '{{.State.Status}}' web-tes
docker inspect --format '{{.NetworkSettings.IPAddress}}' web-tes
Perintah pertama menjawab pertanyaan paling dasar: container ini sebenarnya hidup atau tidak. Outputnya satu kata seperti running atau exited. Perintah kedua mencetak alamat IP internal container, misalnya 172.17.0.2. Dua field lain yang berguna saat debugging: {{.State.ExitCode}} untuk tahu kode keluar container yang mati, dan {{.Config.Env}} untuk melihat environment variable yang aktif di dalamnya.
Cek Pemakaian Disk dengan docker system df
Biasakan menjalankan perintah ini sejak awal belajar, karena Docker diam-diam rakus disk. Setiap docker pull menambah image ratusan MB, dan container yang berhenti tetap menyita ruang. Banyak orang baru sadar saat disk server penuh dan aplikasi ikut tumbang.
docker system df
Outputnya seperti ini:
TYPE TOTAL ACTIVE SIZE RECLAIMABLE
Images 4 1 512.4MB 463.1MB (90%)
Containers 2 1 24.5MB 12.1MB (49%)
Local Volumes 1 0 88.9MB 88.9MB (100%)
Build Cache 0 0 0B 0B
Kolom paling penting adalah RECLAIMABLE, yaitu ruang yang bisa kamu ambil kembali karena dipakai oleh image dan container yang menganggur. Kalau angkanya sudah besar, bersihkan dengan:
docker system prune
Perintah ini menghapus semua container yang berhenti, network yang tidak terpakai, dan image tanpa tag. Docker akan minta konfirmasi dulu sebelum mengeksekusi. Yang perlu diwaspadai adalah varian docker system prune -a, karena ikut menghapus semua image yang sedang tidak dipakai container, termasuk image yang baru kamu pull dan berencana dipakai nanti.
Troubleshooting: Error yang Sering Dialami Pemula
Error “conflict: the container name is already in use”
docker: Error response from daemon: Conflict. The container name "/web-satu"
is already in use by container "1c2d3e4f5a6b".
Penyebabnya hampir selalu sama: kamu pernah menjalankan container dengan nama itu, lalu menghentikannya, dan mengira dia sudah hilang. Padahal container berhenti masih ada dan namanya masih terkunci. Cek dengan docker ps -a, pasti ada container lama dengan nama tersebut. Solusinya pilih salah satu: hapus yang lama dengan docker rm web-satu lalu jalankan ulang, atau nyalakan lagi yang lama dengan docker start web-satu kalau isinya masih relevan.
Error “cannot remove a running container” Saat docker rm
Error response from daemon: cannot remove container "web-satu":
container is running: stop the container before removing or force remove
Docker menolak menghapus container yang masih hidup, dan itu perilaku yang bagus. Cara aman: docker stop web-satu dulu, baru docker rm web-satu. Ada jalan pintas docker rm -f web-satu yang langsung mematikan paksa lalu menghapus, tapi jadikan ini pilihan terakhir. Kill paksa tidak memberi kesempatan aplikasi menutup koneksi atau menyimpan data dengan rapi, dan itu berisiko untuk container database.
Error “No such container” Padahal Baru Dibuat
Biasanya karena dua hal. Pertama, salah ketik nama, cek ejaan persisnya lewat kolom NAMES di docker ps -a. Kedua, container memang gagal dibuat sejak awal karena perintah docker run sebelumnya error, tapi errornya tidak terbaca. Scroll ke atas dan baca pesan dari perintah run terakhirmu.
Error “image is being used by stopped container” Saat docker rmi
Error response from daemon: conflict: unable to delete nginx:1.27-alpine (must be forced)
- image is being used by stopped container 1c2d3e4f5a6b
Image tidak bisa dihapus selama masih ada container yang lahir darinya, walaupun containernya sudah berhenti. Ingat urutan bersih-bersih: hapus dulu containernya dengan docker rm, baru docker rmi akan berhasil.
Rangkuman dan Lanjut ke Bagian Berikutnya
Sampai sini kamu sudah pegang perintah dasar Docker yang dipakai hampir setiap hari: melihat kondisi lewat ps -a, images, logs, dan inspect, mengatur container lewat stop, start, restart, membersihkan lewat rm dan rmi dengan urutan yang benar, plus memantau disk lewat system df. Pola pikirnya sederhana: periksa dulu keadaan, baru bertindak. Kebiasaan yang sama kami pegang saat mengelola sistem aplikasi milik klien di server produksi.
Di bagian berikutnya, “Docker Port Mapping, Mode Detach, dan Environment Variable”, kita bedah opsi -d, -p, dan -e yang tadi sempat kita pakai tanpa penjelasan mendalam, supaya container-mu bisa diakses dari browser dan dikonfigurasi tanpa mengubah image. Artikelnya terbit menyusul, pantau daftarnya di halaman Belajar Docker dari Nol.
Referensi
Artikel Lainnya di Kategori Docker
Docker 30 Juli 2026
Apa Itu Docker dan Cara Install Docker di Ubuntu & Windows
Panduan cara install Docker di Ubuntu lewat repo resmi apt dan Docker Desktop + WSL2 di Windows, lengkap verifikasi hello-world dan solusi error umum.
Baca Artikel
Docker 5 Agustus 2026
Perbedaan Docker Image dan Container + Praktik Pertama
Pahami perbedaan Docker image dan container lewat analogi cetakan, lalu praktik jalankan Nginx, cek docker ps, dan bedah kenapa container langsung exit.
Baca ArtikelIngin Membaca Artikel Lainnya?
Temukan lebih banyak insight dan tips tentang teknologi dan bisnis digital.
Lihat Semua Artikel