15 Perintah Docker untuk Mengelola Kontainer [Daftar, Berhenti, Mulai, Hapus, dan Lainnya]
Diterbitkan: 2021-08-17Docker adalah alat yang populer untuk membangun dan menjalankan aplikasi kemas. Ini tersedia untuk berbagai platform dan digunakan sebagai salah satu teknologi container back-end di Kubernetes.
Di Docker, Anda dapat membuat gambar sendiri untuk menjalankan aplikasi sebagai wadah, atau Anda dapat menarik dan menggunakan ribuan gambar publik dari repositori Docker dan menggunakannya dalam proyek Anda. Setelah gambar Anda siap, Anda dapat meluncurkan wadah Anda menggunakan gambar-gambar itu. Wadah adalah instance berjalan dari gambar Docker.
Mengelola container Docker adalah salah satu aspek terpenting yang harus diperhatikan sebagai administrator sistem yang mengelola host/kontainer Docker.
Pada artikel ini, kita akan fokus pada pengelolaan container menggunakan perintah docker.
jalankan Perintah
perintah docker run
digunakan untuk menjalankan wadah dari gambar dengan menentukan Image ID
atau nama Repository
dan/atau Tag
.
$ docker run {image}
Contoh:
$ docker run nginx
Perintah di atas menjalankan instance aplikasi <span class="NormalTextRun SpellingErrorV2 SCXW251451022 BCX0">nginx</span>
pada host buruh pelabuhan, jika sudah ada. Jika tidak ada di Host Docker, itu keluar ke hub buruh pelabuhan (secara default) dan menarik gambar ke bawah. Tapi ini baru pertama kali dilakukan. Untuk kali berikutnya gambar yang sama digunakan kembali.
Jika Anda ingin menjalankan versi gambar tertentu, tentukan versinya yang dipisahkan oleh titik dua. Ini dikenal sebagai Tag
. Jika Anda tidak menentukan tag apa pun, buruh pelabuhan akan menganggapnya secara default sebagai yang terbaru.
Selanjutnya, jika Anda ingin menjalankan container di latar belakang dalam mode terpisah sehingga Anda kembali ke prompt setelah Docker meluncurkan container, gunakan flag -d
.
Contoh:
$ docker run nginx Unable to find image 'nginx:latest' locally latest: Pulling from library/nginx 33847f680f63: Pull complete dbb907d5159d: Pull complete 8a268f30c42a: Pull complete b10cf527a02d: Pull complete c90b090c213b: Pull complete 1f41b2f2bf94: Pull complete Digest: sha256:8f335768880da6baf72b70c701002b45f4932acae8d574dedfddaf967fc3ac90 Status: Downloaded newer image for nginx:latest /docker-entrypoint.sh: /docker-entrypoint.d/ is not empty, will attempt to perform configuration /docker-entrypoint.sh: Looking for shell scripts in /docker-entrypoint.d/ /docker-entrypoint.sh: Launching /docker-entrypoint.d/10-listen-on-ipv6-by-default.sh 10-listen-on-ipv6-by-default.sh: info: Getting the checksum of /etc/nginx/conf.d/default.conf 10-listen-on-ipv6-by-default.sh: info: Enabled listen on IPv6 in /etc/nginx/conf.d/default.conf /docker-entrypoint.sh: Launching /docker-entrypoint.d/20-envsubst-on-templates.sh /docker-entrypoint.sh: Launching /docker-entrypoint.d/30-tune-worker-processes.sh /docker-entrypoint.sh: Configuration complete; ready for start up 2021/08/15 12:13:23 [notice] 1#1: using the "epoll" event method 2021/08/15 12:13:23 [notice] 1#1: nginx/1.21.1 2021/08/15 12:13:23 [notice] 1#1: built by gcc 8.3.0 (Debian 8.3.0-6) 2021/08/15 12:13:23 [notice] 1#1: OS: Linux 5.8.0-1039-azure 2021/08/15 12:13:23 [notice] 1#1: getrlimit(RLIMIT_NOFILE): 1048576:1048576 2021/08/15 12:13:23 [notice] 1#1: start worker processes 2021/08/15 12:13:23 [notice] 1#1: start worker process 33 2021/08/15 12:13:23 [notice] 1#1: start worker process 34
perintah ps
perintah docker ps
mencantumkan semua container yang sedang berjalan dan beberapa informasi dasar tentangnya. Seperti ID wadah, nama gambar, waktu wadah dibuat, status saat ini, dan nama wadah. Setiap wadah mendapat nama acak (jika tidak ditentukan secara eksplisit) dan ID.
Contoh:
$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 133f5e0267a5 nginx "/docker-entrypoint.…" 10 seconds ago Up 10 seconds 80/tcp jolly_elion
Untuk membuat daftar semua wadah yang berjalan dan tidak berjalan/keluar sekaligus, Anda dapat menggunakan:
$ docker ps -a
Contoh:
$ docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES fcec129f0eb4 nginx "/docker-entrypoint.…" 46 hours ago Exited (0) 46 hours ago interesting_ishizaka 6e8b1e441aa6 hello-world "/hello" 2 days ago Exited (0) 2 days ago keen_shirley
ls Perintah
Seperti perintah ps
, ls
juga dapat digunakan untuk membuat daftar container. -a
flag dapat digunakan untuk mendaftar semua container (bukan hanya container yang sedang berjalan).
$ docker container ls
Contoh:
$ docker container ls CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 15796e91c30b redis "docker-entrypoint.s…" 2 seconds ago Up 1 second 6379/tcp flamboyant_neumann 904390b65d45 nginx "/docker-entrypoint.…" 14 minutes ago Up 14 minutes 80/tcp nginx_new $
hentikan perintah
perintah docker stop
digunakan untuk menghentikan container yang sedang berjalan. Di sini kita perlu memasukkan nama wadah atau ID bersama dengan ini.
$ docker stop {container-id}
Jika berhasil, itu akan mengembalikan nama atau ID buruh pelabuhan.
Contoh:
$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 133f5e0267a5 nginx "/docker-entrypoint.…" 50 seconds ago Up 49 seconds 80/tcp jolly_elion
Ini akan mengembalikan CONTAINER ID
yang dapat Anda gunakan untuk menghentikan penampung.
$ docker stop 133f5 133f5
Untuk contoh ini dan yang akan datang, perhatikan bahwa Anda tidak perlu menentukan nilai lengkap CONTAINER ID
. Itu akan menerima hingga bagian, yang membuatnya unik di antara wadah lain yang sedang berjalan karena Docker tahu wadah mana yang harus dihentikan.
perintah rm
perintah docker rm
menghapus wadah yang berhenti atau keluar.
$ docker rm {CONTAINER NAME or ID}
Contoh:
$ docker rm 133f5 133f5 $
perintah eksekutif
Kita dapat menggunakan perintah exec
untuk masuk ke dalam container yang sedang berjalan. Ini berguna untuk men-debug container yang sedang berjalan atau melakukan beberapa hal di dalam container.

$ docker exec –it {container} {command}
Contoh:
Misalkan Anda ingin meluncurkan bash
shell (dengan asumsi gambar memiliki Bash tersedia, Anda juga dapat menggunakan shell lain yang tersedia) di dalam wadah bernama unruffled_meninsky
dalam mode interaktif, gunakan:
$ docker exec –it unruffled_meninsky /bin/bash
Ini akan mendaratkan Anda di dalam wadah di bash
shell. Di sini flag -i
adalah singkatan dari mode interaktif dan -t
untuk terminal. Jika Anda hanya ingin menjalankan satu atau lebih perintah dan keluar dari wadah, Anda dapat menggunakan:
$ docker exec unruffled_meninsky cat /etc/hosts 127.0.0.1 localhost ::1 localhost ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters 172.17.0.2 cd2eed4acf34
perintah log
Jika wadah diluncurkan dalam mode terpisah, dan kami ingin melihat lognya, kami dapat menggunakan perintah logs
untuk meninjau lognya:
$ docker logs {CONTAINER NAME or ID}
Contoh:
$ docker logs 7da6dcebaf9c /docker-entrypoint.sh: /docker-entrypoint.d/ is not empty, will attempt to perform configuration /docker-entrypoint.sh: Looking for shell scripts in /docker-entrypoint.d/ /docker-entrypoint.sh: Launching /docker-entrypoint.d/10-listen-on-ipv6-by-default.sh 10-listen-on-ipv6-by-default.sh: info: Getting the checksum of /etc/nginx/conf.d/default.conf 10-listen-on-ipv6-by-default.sh: info: Enabled listen on IPv6 in /etc/nginx/conf.d/default.conf /docker-entrypoint.sh: Launching /docker-entrypoint.d/20-envsubst-on-templates.sh /docker-entrypoint.sh: Launching /docker-entrypoint.d/30-tune-worker-processes.sh /docker-entrypoint.sh: Configuration complete; ready for start up 2021/08/15 12:14:09 [notice] 1#1: using the "epoll" event method 2021/08/15 12:14:09 [notice] 1#1: nginx/1.21.1 2021/08/15 12:14:09 [notice] 1#1: built by gcc 8.3.0 (Debian 8.3.0-6) 2021/08/15 12:14:09 [notice] 1#1: OS: Linux 5.8.0-1039-azure 2021/08/15 12:14:09 [notice] 1#1: getrlimit(RLIMIT_NOFILE): 1048576:1048576 2021/08/15 12:14:09 [notice] 1#1: start worker processes 2021/08/15 12:14:09 [notice] 1#1: start worker process 31 2021/08/15 12:14:09 [notice] 1#1: start worker process 32 $
perintah cp
Untuk menyalin file antara wadah dan sistem file localhost, Anda dapat menggunakan perintah cp
.
$ docker container cp {CONTAINER NAME or ID:SRC_PATH} {DEST_PATH}|-
Contoh:
$ docker container cp quirky_cray:/etc/nginx/nginx.conf nginx.conf.bkp
perintah ekspor
Perintah wadah Docker menawarkan opsi untuk mengekspor sistem file wadah sebagai file TAR.
$ docker container export {CONTAINER NAME or ID}
periksa Komando
Kami dapat memeriksa informasi terperinci tentang wadah menggunakan perintah inspect
sebagai:
$ docker inspect {CONTAINER NAME or ID}
ATAU
$ docker container inspect {CONTAINER NAME or ID}
membunuh Komando
Wadah yang sedang berjalan dapat dimatikan menggunakan perintah kill
dengan flag --signal
atau -s
opsional. Beberapa kontainer dapat ditentukan untuk membunuh mereka sekaligus.
$ docker kill {CONTAINER NAME or ID} [--signal VAL]
Contoh:
$ docker kill cd9005a0b5d2 -s 9 cd9005a0b5d2 $
perintah statistik
Untuk menampilkan streaming langsung penggunaan resource container, Anda dapat menggunakan perintah stats
:
$ docker container stats {CONTAINER NAME or ID}
Contoh:
$ docker container stats thirsty_volhard CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS 904390b65d45 thirsty_volhard 0.00% 3.406MiB / 7.775GiB 0.04% 1.02kB / 0B 0B / 8.19kB 3
perintah atas
Seperti perintah top
di Linux, kita dapat menggunakannya dengan Docker untuk mendapatkan daftar proses yang sedang berjalan.
$ docker container top {CONTAINER NAME or ID}
Contoh:
$ docker container top thirsty_volhard UID PID PPID C STIME TTY TIME CMD root 2603 2582 0 12:34 ? 00:00:00 nginx: master process nginx -g daemon off; systemd+ 2659 2603 0 12:34 ? 00:00:00 nginx: worker process systemd+ 2660 2603 0 12:34 ? 00:00:00 nginx: worker process $
ganti nama Command
Untuk mengganti nama container yang ada, gunakan perintah rename
.
$ docker container rename {OLD CONTAINER NAME} {NEW CONTAINER NAME}
Contoh:
$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 904390b65d45 nginx "/docker-entrypoint.…" 7 minutes ago Up 7 minutes 80/tcp nginx_container $ docker container rename nginx_container nginx_new $ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 904390b65d45 nginx "/docker-entrypoint.…" 7 minutes ago Up 7 minutes 80/tcp nginx_new $
perintah berbeda
Kita dapat memeriksa perubahan pada file atau direktori pada sistem file container dengan perintah diff
.
$ docker container diff {CONTAINER NAME or ID}
Contoh:
$ docker container diff nginx_new C /var C /var/cache C /var/cache/nginx A /var/cache/nginx/uwsgi_temp A /var/cache/nginx/client_temp A /var/cache/nginx/fastcgi_temp A /var/cache/nginx/proxy_temp A /var/cache/nginx/scgi_temp C /etc C /etc/nginx C /etc/nginx/conf.d C /etc/nginx/conf.d/default.conf C /run A /run/nginx.pid $
Ringkasan
Sebagai penutup, Doker menawarkan serangkaian perintah yang ekstensif untuk mengelola container mulai dari pembuatannya hingga penghancurannya. Kami telah membahas beberapa perintah penting dan penggunaannya dalam artikel ini yang akan memberi Anda ide bagus tentang mengelola container buruh pelabuhan.
Selanjutnya, temukan beberapa sumber daya untuk mempelajari DevOps.