1. 使用`docker stop`命令配合`docker ps -aq`命令

   原理:

     `docker ps -aq`会列出所有容器的ID。其中`docker ps`命令用于列出容器,`-a`参数表示列出所有容器(包括已经停止的容器),`-q`参数表示只输出容器ID。

     `docker stop`命令用于停止一个或多个正在运行的容器。它会向容器内的主进程发送`SIGTERM`信号,等待一段时间(默认10秒)后,如果容器还没有停止,就会发送`SIGKILL`信号强制停止容器。

   操作步骤:

     打开终端(在Linux或macOS环境下)或命令提示符(在Windows环境下的Docker Desktop)。

     输入以下命令:`docker stop $(docker ps -aq)`。

     命令执行后,所有正在运行的Docker容器都会被停止。

2. 使用`docker-compose`(如果你的容器是通过`docker compose`启动的)

   原理:

     `docker compose`是一个用于定义和运行多容器Docker应用程序的工具。在`docker compose.yml`文件中定义了应用程序的服务(每个服务通常对应一个或多个容器)。`docker compose down`命令会根据`docker compose.yml`文件的配置停止并删除容器、网络、卷等相关资源。

   操作步骤:

     确保你在包含`docker compose.yml`文件的目录下打开终端。

     输入命令`docker compose down`。

     这样就会停止所有通过该`docker compose.yml`文件启动的容器。不过需要注意的是,这个命令还会删除相关的网络和卷(如果没有特别配置保留的话)。如果只想停止容器而不删除其他资源,可以使用`docker compose stop`命令,它的工作方式类似于`docker stop`,只是针对`docker compose`管理的容器。

在实际操作中,如果容器中有重要的数据正在处理,突然停止容器可能会导致数据丢失或损坏。所以在执行停止操作之前,最好先备份重要的数据或者确保容器内的应用程序能够正确处理突然的终止情况。

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐