In daily work, docker has a lot of contacts. In addition to the frequently used commands such as docker run and docker stop, docker also has many useful but infrequently used commands. Here is a summary:
1. docker top
This command is used to view the process information in a container. For example, you can do this when you want to view several nginx processes in an nginx container:
➜ ~ docker top 3b307a09d20d UID PID PPID C STIME TTY TIME CMD root 805 787 0 Jul13 ? 00:00:00 nginx: master process nginx -g daemon off; systemd+ 941 805 0 Jul13 ? 00:03:18 nginx: worker process
2. docker load && docker save
I usually use these two commands to download and package the image of Kubernetes, because you know, the network speed in China is not as fast as that in foreign countries.
docker save can save an image to a tar file. You can do this:
➜ ~ docker save registry:2.7.1 >registry-2.7.1.tar
Meanwhile, docker load can import the image from tar file into docker
➜ ~ docker load < registry-2.7.1.tar
3. docker search
This command can help you easily search the image in DockerHub on the command line, such as:
➜ ~ docker search nginx NAME DESCRIPTION STARS OFFICIAL AUTOMATED nginx Official build of Nginx. 13519 [OK] jwilder/nginx-proxy Automated Nginx reverse proxy for docker con... 1846 [OK] richarvey/nginx-php-fpm Container running Nginx + PHP-FPM capable of... 780 [OK] linuxserver/nginx An Nginx container, brought to you by LinuxS... 123 bitnami/nginx Bitnami nginx Docker Image 87 [OK] tiangolo/nginx-rtmp Docker image with Nginx using the nginx-rtmp... 85 [OK] jc21/nginx-proxy-manager Docker container for managing Nginx proxy ho... 73 alfg/nginx-rtmp NGINX, nginx-rtmp-module and FFmpeg from sou... 71 [OK] nginxdemos/hello NGINX webserver that serves a simple page co... 57 [OK] jlesage/nginx-proxy-manager Docker container for Nginx Proxy Manager 53 [OK] nginx/nginx-ingress NGINX Ingress Controller for Kubernetes 37 ......
Of course, this function may not be particularly easy to use in China, because
4. docker events
This command can help you get all kinds of event information of docker in real time, such as creating a container or something.
➜ ~ docker events 2020-07-28T21:28:46.000403018+08:00 image load sha256:432bf69f0427b52cad10897342eaf23521b7d973566354118e9a59c4d31b5fae (name=sha256:432bf69f0427b52cad10897342eaf23521b7d973566354118e9a59c4d31b5fae)
5. docker update
When you docker run and find that some parameters are not in the state you want, such as the cpu or memory of the nginx container you set is too small, you can use docker update to modify these parameters.
➜ ~ docker update nginx --cpus 2
6. docker history
You can use this command when you modify an image but forget the modify command of each layer, or you want to see how an image is built, such as:
➜ ~ docker history traefik:v2.1.6 IMAGE CREATED CREATED BY SIZE COMMENT 5212a87ddaba 5 months ago /bin/sh -c #(nop) LABEL org.opencontainers.... 0B <missing> 5 months ago /bin/sh -c #(nop) CMD ["traefik"] 0B <missing> 5 months ago /bin/sh -c #(nop) ENTRYPOINT ["/entrypoint.... 0B <missing> 5 months ago /bin/sh -c #(nop) EXPOSE 80 0B <missing> 5 months ago /bin/sh -c #(nop) COPY file:59a219a1fb7a9dc8... 419B <missing> 5 months ago /bin/sh -c set -ex; apkArch="$(apk --print-... 52.9MB <missing> 5 months ago /bin/sh -c apk --no-cache add ca-certificate... 1.85MB <missing> 6 months ago /bin/sh -c #(nop) CMD ["/bin/sh"] 0B <missing> 6 months ago /bin/sh -c #(nop) ADD file:a1906f14a4e217a49... 4.81MB
7. docker wait
This command can view the exit status of the container, such as:
➜ ~ docker wait 7f7f0522a7d0 0
In this way, you can know whether the container exits normally or abnormally.
8. docker pause && docker unpause
When you run a container but want to pause it, you can use this command.
➜ ~ docker pause 7f7f0522a7d0
9. docker diff
When you run a container, but you don't know which files have been modified in the container, you can use this command, such as:
➜ ~ docker diff 38c59255bf6e C /etc A /etc/localtime C /var C /var/lib A /var/lib/registry
10. docker stats
This is the built-in monitoring command of docker. You can use this command when you want to view the memory and cpu occupied by all containers under the current host.
➜ ~ docker stats CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS 1c5ade04e7f9 redis 0.08% 17.53MiB / 47.01GiB 0.04% 10.9GB / 37GB 0B / 0B 4 afe6d4ebe409 kafka-exporter 0.09% 16.91MiB / 47.01GiB 0.04% 1.97GB / 1.53GB 752MB / 0B 23 f0c7c01a9c34 kafka-docker_zookeeper 0.01% 308.8MiB / 47.01GiB 0.64% 20.2MB / 12.2MB 971MB / 3.29MB 28 da8c5008955f kafka-docker_kafka-manager 0.08% 393.2MiB / 47.01GiB 0.82% 1.56MB / 2.61MB 1.14GB / 0B 60 c8d51c583c49 kafka-docker_kafka 1.63% 1.256GiB / 47.01GiB 2.67% 30.4GB / 48.9GB 22.3GB / 5.77GB 85 ......
For my inventory, please click My GitHub Free collection