10 unpopular but very practical Docker skills

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

Keywords: Android

Added by thor erik on Thu, 27 Jan 2022 06:08:36 +0200