在Docker中,我们使用命令行工具来管理和操作容器。其中,docker ps
和docker ps -q
是最常用的两个命令之一。
docker ps
用于列出当前正在运行的容器。它会显示容器的ID、名称、状态、运行时间等信息。例如:
$ docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES62d1a92b7308 nginx:latest "/docker-entrypoint.…" 6 minutes ago Up 6 minutes 80/tcp nginx-containerbc18a60dc00e mysql:5.7 "docker-entrypoint.s…" 47 minutes ago Up 47 minutes (healthy) 3306/tcp mysql-container25a521d85d1f redis:latest "docker-entrypoint.s…" 2 weeks ago Up 2 weeks 6379/tcp redis-container
而docker ps -q
命令则是用于获取当前正在运行容器的ID,它会忽略其他信息,而只输出容器ID。例如:
$ docker ps -q62d1a92b7308bc18a60dc00e25a521d85d1f
可以看到,输出结果只有容器ID。
那么这个命令有什么实际用途呢?docker ps -q
实际上是一个非常实用的命令,在一些场景下能够大大简化我们的工作。例如,当我们需要停止所有正在运行的容器时,就可以使用以下命令:
$ docker stop $(docker ps -q)
此命令会先使用docker ps -q
获取所有正在运行容器的ID,然后依次停止这些容器。也即是,它相当于执行以下命令:
$ docker stop 62d1a92b7308 bc18a60dc00e 25a521d85d1f
对于需要同时停止多个容器的情况,这种方式将节省我们不少时间和精力。