Salah satu perintah Docker pertama yang Anda gunakan adalah docker ps
memerintah. Ini menunjukkan container yang sedang berjalan:
docker ps
Sebenarnya, menjalankan perintah ini memberi Anda daftar container yang sedang berjalan dan ID container uniknya, nama gambar, perintah yang dijalankan, waktu sejak dijalankan (waktu aktif), dan port yang digunakan.
Tetapi Anda dapat melakukan sedikit lebih banyak dengannya. Anda dapat menampilkan penampung yang dihentikan, memfilter hasilnya, atau hanya menampilkan ID penampung.
Mari kita lihat lebih detail perintah Docker yang penting ini.
Perintah docker ps
Docker memiliki alias untuk menampilkan semua container yang berjalan dengan konvensi penamaan ramah POSIX.
Itu adalah ps
sub-perintah di Docker. Ini adalah alias dari docker container ls
. Yang, seperti yang bisa Anda tebak, digunakan untuk membuat daftar kontainer buruh pelabuhan.
Berikut adalah contoh menjalankan docker ps
di komputer saya:
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
58c7013a49c3 nextcloud "/entrypoint.sh apac…" 32 seconds ago Up 31 seconds 0.0.0.0:8010->80/tcp, :::8010->80/tcp nextcloud_server
140161b8b139 mariadb "docker-entrypoint.s…" 34 seconds ago Up 32 seconds 3306/tcp nextcloud_db
73a6901a4846 lscr.io/linuxserver/transmission "/init" 17 minutes ago Exited (137) 9 minutes ago transmission_web
Seperti yang Anda lihat, perintah ini menampilkan detail tentang semua container yang sedang berjalan.
Detail yang ditampilkan adalah ID unik container, nama gambar, perintah yang dijalankan container, tanggal pembuatan container, waktu aktif, port yang dipetakan, dan nama container.
Sebagai sysadmin, Anda akan sering menggunakan perintah ini dalam sebuah skrip. Docker menyediakan beberapa opsi yang dapat membantu saat Anda menjalankan docker ps
dalam naskah.
Tampilkan semua container (bukan hanya container yang sedang berjalan)
Sebagai ps
UNIX perintah digunakan untuk menunjukkan proses (program yang sedang dieksekusi), Docker berperilaku serupa.
Menjalankan docker ps
hanya akan menampilkan wadah buruh pelabuhan yang aktif.
Jika Anda menghentikan container yang sedang berjalan, container tersebut masih ada, hanya saja container tersebut tidak lagi berjalan.
Untuk melihat container yang dalam keadaan berhenti, gunakan --all
(atau -a
) opsi seperti ini:
docker ps --all
Saya menghentikan penampung transmission_web
. Mari kita lihat apa yang saya dapatkan di output.
$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
58c7013a49c3 nextcloud "/entrypoint.sh apac…" 32 seconds ago Up 31 seconds 0.0.0.0:8010->80/tcp, :::8010->80/tcp nextcloud_server
140161b8b139 mariadb "docker-entrypoint.s…" 34 seconds ago Up 32 seconds 3306/tcp nextcloud_db
73a6901a4846 lscr.io/linuxserver/transmission "/init" 17 minutes ago Exited (137) 9 minutes ago transmission_web
Seperti yang Anda lihat, -a
opsi juga menunjukkan wadah yang dihentikan.
Filter output docker ps untuk hasil yang lebih akurat
docker ps
perintah memiliki opsi yang sangat berguna, --filter
(atau -f
singkatnya).
Seperti yang terlihat dari nama opsi, Anda dapat memfilter wadah menggunakan bidang berikut:
id
name
label
exited
status
ancestor
since
volume
publish
health
isolation
Saya telah membuat wadah yang diberi nama nextcloud_server
. Saya ingin melihat detail tentang container, tetapi hanya container dengan nama yang saya cari. Mari kita lihat cara menggunakan name
filter.
$ docker ps --filter "name=nextcloud_server"
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
58c7013a49c3 nextcloud "/entrypoint.sh apac…" 3 hours ago Up 3 hours 0.0.0.0:8010->80/tcp, :::8010->80/tcp nextcloud_server
Saya menjalankan beberapa wadah, tetapi meneruskan menggunakan name
filter hanya menunjukkan wadah yang cocok dengan namanya.
Mari kita coba menggunakan id
Saring. Saya memiliki wadah MariaDB dengan ID "140161b8b139". Saya akan menggunakan perintah berikut untuk mencapainya.
$ docker ps --filter "id=140161b8b139"
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
140161b8b139 mariadb "docker-entrypoint.s…" 15 hours ago Up 15 hours 3306/tcp nextcloud_db
Mudah! Saya mendapatkan wadah dengan ID yang cocok.
Tampilkan container sesuai urutan pembuatannya
Ya, Anda dapat membuat daftar kontainer yang diurutkan berdasarkan tanggal pembuatannya menggunakan --latest
(atau l
singkatnya).
Urutan terbaru di atas dan terlama di bawah.
Berikut adalah contoh output dari menjalankan perintah docker ps --latest
di komputer saya:
$ docker ps --latest
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
58c7013a49c3 nextcloud "/entrypoint.sh apac…" 15 hours ago Up 15 hours 0.0.0.0:8010->80/tcp, :::8010->80/tcp nextcloud_server
73a6901a4846 lscr.io/linuxserver/transmission "/init" 16 hours ago Exited (137) 16 hours ago transmission_web
Ada beberapa gotcha dengan perintah ini.
- Kontainer apa pun yang digunakan sebagai "dependensi" tidak akan dicantumkan
- Outputnya mencakup semua status container (artinya container yang dihentikan pun akan dicantumkan)
Saya telah membuat wadah "nextcloud_server" dengan MariaDB sebagai "ketergantungannya." Sehingga container tersebut tidak terdaftar pada output saat menggunakan --latest
bendera.
Membuat banyak skrip? Hanya tampilkan ID penampung
Asumsikan Anda sedang menulis skrip dan hanya ingin menangani ID Penampung sehingga Anda dapat melakukan tindakan pada penampung. Untuk itu, Anda dapat menggunakan --quiet
(atau -q
singkatnya) opsi.
Diberikan di bawah ini adalah output dari menjalankan docker ps -q
di komputer saya.
$ docker ps -q
58c7013a49c3
140161b8b139
Seperti yang Anda lihat, output hanya terdiri dari ID Penampung (dari penampung yang sedang berjalan) dan tidak ada yang lain.
Seperti yang Anda lihat, ada lebih banyak perintah Docker ps daripada hanya menampilkan informasi container yang sedang berjalan. Beri tahu saya jika Anda mempelajari sesuatu yang baru atau jika Anda mengetahui beberapa contoh berguna lainnya dari docker ps
perintah.