Topik ini membahas penamaan container dan cara menjalankannya tanpa menahan terminal. Pembahasan mencakup opsi --name, mode detached dengan -d, pembacaan keluaran melalui docker logs, perbedaan docker ps dan docker ps -a, serta perintah siklus hidup stop, start, restart, dan rm. Setelah membacanya, container dapat dikelola sebagai objek bernama yang mudah dirujuk, bukan deretan nama acak yang sulit dilacak.
Nama container yang stabil#
Apabila --name tidak diberikan, Docker memberi container nama acak bergaya kata sifat diikuti nama ilmuwan yang dipisah garis bawah. Nama semacam itu unik dan tidak membahayakan, tetapi tidak menyampaikan apa pun tentang peran container tersebut. Pada host, yaitu mesin tempat Docker berjalan, menebak container mana yang memuat aplikasi catatan dari sekadar nama acak adalah pekerjaan yang tidak perlu.
Opsi --name menetapkan nama secara sengaja, misalnya --name catatan-app untuk container aplikasi catatan. Nama ini menjadi rujukan yang lebih nyaman dibaca daripada pengenal heksadesimal, baik pada docker logs, docker stop, maupun docker rm. Nama container harus unik pada satu host, dan Docker menampilkan pesan error apabila nama yang diminta sudah dipakai container lain, termasuk container yang sudah berhenti tetapi belum dihapus.
Menjalankan di latar dengan -d#
Tanpa opsi tambahan, docker run berjalan dalam mode terpasang (attached), yaitu terminal menempel pada container dan keluarannya mengalir ke layar. Terminal terkunci selama itu, dan menekan Ctrl-C ikut menghentikan proses utama container. Mode ini cocok untuk uji coba singkat yang keluarannya memang ingin disaksikan langsung.
Opsi -d menjalankan container dalam mode detach, yaitu berjalan di latar sementara kendali terminal langsung kembali. Container tetap berjalan setelah perintah selesai, dan keluarannya terkumpul di dalam Docker untuk dibaca belakangan. Perintah docker logs nama-container menampilkan keluaran yang terkumpul, sedangkan opsi -f pada perintah yang sama mengikuti keluaran baru secara langsung sampai dihentikan dengan Ctrl-C.
# tidak-dijalankan: daemon Docker tidak tersedia di sandbox
# jalankan container di latar dengan nama tetap
docker run -d --name catatan-app catatan
# tampilkan keluaran yang terkumpul
docker logs catatan-app
# ikuti keluaran baru secara langsung
docker logs -f catatan-appMenampilkan daftar container#
Perintah docker ps menampilkan container yang sedang berjalan, sedangkan docker ps -a menampilkan semua container, termasuk yang sudah berhenti. Container yang berhenti tetap terdaftar sampai dihapus, sehingga docker ps -a menjadi tempat pemeriksaan pertama ketika sebuah container langsung berhenti sebelum sempat diamati. Kolom-kolom utamanya adalah sebagai berikut.
| Kolom | Isi |
|---|---|
| CONTAINER ID | Pengenal pendek yang dihasilkan acak untuk container |
| IMAGE | Image tempat container dibuat |
| STATUS | Lama container berjalan, atau kode keluar beserta waktunya bila sudah berhenti |
| NAMES | Nama container, berupa nama acak bila --name tidak diberikan |
Kolom STATUS membedakan container yang sehat dari yang bermasalah. Status berupa lama berjalan menandakan container hidup, sedangkan status berupa kode keluar menunjukkan container sudah berhenti beserta kode yang ditinggalkan prosesnya. Kode keluar 0 menyatakan berhenti secara normal, sedangkan kode lain menandakan kegagalan yang perlu ditelusuri melalui log.
# tidak-dijalankan: daemon Docker tidak tersedia di sandbox
# hanya container yang berjalan
docker ps
# semua container, termasuk yang berhenti
docker ps -aSiklus hidup dan pembersihan#
Pengelolaan harian container adalah perputaran keadaan yang sama, yaitu dibuat, dijalankan, dihentikan, dan dihapus. Urutan berikut memperagakan perputaran itu pada satu container bernama.
- Buat dan jalankan container di latar dengan
docker run -d. - Amati keadaannya melalui
docker ps. - Hentikan dengan
docker stop, lalu pastikan keadaan barunya lewatdocker ps -a. - Jalankan kembali dengan
docker starttanpa mengulang konfigurasinya. - Hapus dengan
docker rmsetelah container berhenti.
# tidak-dijalankan: daemon Docker tidak tersedia di sandbox
docker run -d --name catatan-app catatan
# hentikan proses utama secara rapi
docker stop catatan-app
# jalankan kembali container yang sama
docker start catatan-app
# hentikan lalu jalankan lagi dalam satu perintah
docker restart catatan-app
docker stop catatan-app
# hapus container yang sudah berhenti
docker rm catatan-app| Perintah | Efek pada container |
|---|---|
docker stop | Menghentikan proses utama secara rapi, container dan konfigurasinya tetap tersimpan |
docker start | Menjalankan kembali container yang berhenti dengan konfigurasi yang sama |
docker restart | Menggabungkan stop dan start dalam satu perintah |
docker rm | Menghapus container beserta seluruh data yang ditulis selama berjalan |
docker stop mengirim sinyal permintaan berhenti ke proses utama, lalu menunggu selama masa tenggang sebelum memaksa penghentian. Masa tenggang bawaannya sekitar 10 detik, dan proses yang menolak berhenti tetap dipaksa setelah masa itu lewat. Sebaliknya, docker start tidak mengulang konfigurasi apa pun, sehingga pemetaan port dan variabel lingkungan dari saat docker run tetap berlaku.
Container sekali pakai lebih praktis dibuat dengan --rm pada docker run. Opsi ini menghapus container secara otomatis tepat setelah prosesnya selesai, sehingga docker ps -a tidak menumpuk sisa container uji coba. Pola ini cocok untuk perintah utilitas yang dijalankan berkala dan tidak menyimpan keadaan apa pun.
Ringkasan#
--namemenetapkan nama tetap dan unik sebagai pengganti nama acak bawaan, dan nama itu menjadi rujukan untuk semua perintah lanjutan.-dmenjalankan container di latar, sedangkandocker logsmembaca keluaran yang dikirim aplikasi ke stdout dan stderr.docker psmenampilkan container yang berjalan, sedangkandocker ps -amenampilkan semuanya beserta kode keluar container yang berhenti.stop,start, danrestartmengatur keadaan container yang sama, sedangkanrmmenghapusnya permanen dan--rmotomatis menghapus container sekali pakai.
Referensi#
- docker container run — Docker Docs
— Rujukan opsi
--name,-d, dan--rmpadadocker run. - docker container ps — Docker Docs
— Rujukan perintah ps beserta perilaku opsi
-a. - docker container stop — Docker Docs — Perilaku sinyal penghentian dan masa tenggangnya.