Docker 教程

Docker 停止容器

在 Docker 中,使用 docker container stop 命令停止一个或多个正在运行的 Docker 容器。

语法

语法如下:

用法:docker container stop [OPTIONS] CONTAINER [CONTAINER...]

停止一个或多个正在运行的容器

别名:
  docker container stop、docker stop

选项:
  -s, --signal string   要发送给容器的信号
  -t, --time int   杀死容器前等待的秒数

基本用法

docker container stop [OPTIONS] CONTAINER [CONTAINER...]

参数说明:

  • CONTAINER  要停止的容器的名称或 ID,可以指定一个或多个容器。

例如:

(1)停止单个容器

root@hxvm2:~# docker container stop redis
redis

上面命令将停止 redis 容器。

(2)停止多个容器

root@hxvm2:~# docker container stop redis 41a203fa62c5
redis
41a203fa62c5

上面命令将停止 redis 和 41a203fa62c5 容器。

工作原理

当执行 docker container stop 命令时,Docker 会向容器内的主进程发送一个 SIGTERM 信号,请求容器优雅地停止。容器内的应用程序可以捕获这个信号,并在接收到信号后进行一些清理工作,如保存数据、关闭网络连接等。

如果在一定时间内(默认是 10 秒)容器没有停止,Docker 会发送一个 SIGKILL 信号强制停止容器。

常见用途

(1)停止运行中的容器

当不再需要一个容器运行时,可以使用这个命令停止它。例如,在完成一个测试或开发任务后,停止相应的容器以释放系统资源。

如果容器内的应用程序出现问题,也可以使用这个命令停止容器,以便进行故障排除和修复。

(2)批量停止容器

在某些情况下,可能需要同时停止多个容器。可以使用docker container stop命令结合通配符或多个容器名称 / ID 来实现批量停止。

例如,如果有多个以特定名称开头的容器在运行,可以使用通配符来停止它们:docker container stop my_container_*。

注意事项

(1)数据保存

在停止容器之前,确保容器内的应用程序已经保存了重要的数据。虽然容器在接收到 SIGTERM 信号时有机会进行清理工作,但如果应用程序没有正确处理这个信号,可能会导致数据丢失。

对于一些关键的应用程序,可以考虑在容器停止之前手动进行数据备份或使用持久化存储来确保数据的安全性。

(2)优雅停止

给容器足够的时间来优雅地停止是很重要的。如果容器内的应用程序需要一些时间来完成清理工作,可以考虑增加docker container stop命令的超时时间,使用--time参数指定一个更长的时间间隔。

例如:docker container stop --time 30 my_container,这将给容器 30 秒的时间来停止。

总结

docker container stop 命令是一个常用的 Docker 命令,用于停止正在运行的容器。在使用时,要注意数据保存和给容器足够的时间来优雅地停止,以确保系统的稳定性和数据的安全性。

说说我的看法
全部评论(
没有评论
关于
本网站属于个人的非赢利性网站,转载的文章遵循原作者的版权声明,如果原文没有版权声明,请来信告知:hxstrive@outlook.com
公众号