docker基础(七)之docker start/stop/kill/restart/pause/unpause

概述

用于学习和记录,以下内容来自chatgpt3.5,网络等,补充例子。
本文介绍了docker start/stop/kill/restart/pause/unpause的基础用法,及相关options的详细解释和例子。

docker系列其他文章:docker专栏

命令速查

docker start :启动一个或多个已经被停止的容器
docker stop :停止一个运行中的容器
docker restart :重启容器
docker pause :暂停容器中所有的进程。
docker unpause :恢复容器中所有的进程。

docker start

docker start :启动一个或多个已经被停止的容器

PS:意思就是,这个作用的前提是,这个容器以及被停止了需要重新启动。

语法

docker start [OPTIONS] CONTAINER [CONTAINER...]

OPTIONS详解:

当使用 docker start 命令启动容器时,可以使用不同选项来满足不同的需求,例如:

  • -a, --attach:附着到容器的标准输出。适用于需要实时查看容器的输出信息,比如查看容器的日志或调试容器内部的运行情况。
docker start -a <container_id>
  • --checkpoint --checkpoint-dir:用于从指定的检查点恢复容器。这对于容器迁移或者容器快速恢复非常有用。
docker start --checkpoint=mycheckpoint <container_id>
  • -i, --interactive:保持标准输入打开,即使没有附着到容器。适用于需要与容器进行交互的场景,比如在启动容器后执行命令。
docker start -i <container_id>
  • --restart=always:表示如果容器退出,则始终重新启动容器。适用于需要在容器退出时自动重新启动容器的情况,比如关键服务的容器。
docker start --restart=always <container_id>

这些选项可以根据具体的需求来灵活调整,在启动容器时提供更多的灵活性和控制。

docker stop

docker stop :停止一个运行中的容器

语法

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

docker stop 命令用于停止一个或多个正在运行的容器。这个命令会发送一个停止信号给容器,然后容器会进行优雅地关闭。

OPTIONS详解:

  • -t, --time 选项
    这个选项用来指定容器等待多长时间后强制停止,单位为秒。如果容器在指定的时间内无法优雅地关闭,则会被强制停止。默认情况下,Docker 会等待 10 秒后发送 SIGKILL 信号。
docker stop -t 30 <container_id>

这个命令将发送停止信号给容器,并等待 30 秒后如果容器还未关闭则发送 SIGKILL 信号强制关闭。

  • --help 选项
    这个选项用于显示帮助信息,列出 docker stop 命令的用法和选项。
docker stop --help

这个命令会输出关于 docker stop 命令的帮助信息。

这些选项可以根据具体的需求来使用,帮助控制 docker stop 命令的行为。

docker restart

docker restart :重启容器

语法

docker restart [OPTIONS] CONTAINER [CONTAINER...]

docker restart 命令用于重新启动一个或多个已经运行的容器。

OPTIONS详解:

  • --time:指定容器在重启之前的等待时间。
  • --help:显示帮助信息。

示例和说明

  • 重新启动单个容器:
docker restart <container_id>

这个命令将重新启动指定的容器。

  • 重新启动多个容器:
docker restart <container_id_1> <container_id_2> <container_id_3> ...

这个命令将重新启动多个指定的容器。

  • 使用 --time 选项指定重启前的等待时间:
docker restart --time 30 <container_id>

这个命令将重新启动指定的容器,并且在重启前等待 30 秒。这样可以让容器有时间进行优雅地关闭。

docker kill

docker kill :杀掉一个运行中的容器。

语法

docker kill [OPTIONS] CONTAINER [CONTAINER...]

OPTIONS说明:

  • -s :向容器发送一个信号docker kill 命令用于发送信号给容器来停止容器的运行,可以使用不同的选项来控制操作。以下是一些示例和说明:

  • 停止单个容器:

docker kill <container_id>

这个命令将发送 SIGKILL 信号给指定的容器,强制终止容器的运行。

  • 停止多个容器:
docker kill <container_id_1> <container_id_2> <container_id_3> ...

这个命令将发送 SIGKILL 信号给多个指定的容器,强制终止这些容器的运行。

  • 使用选项 -s 指定发送的信号:
docker kill -s SIGTERM <container_id>

这个命令将发送指定的信号(这里是 SIGTERM)给指定的容器,可以使用信号名称或者信号编号。默认的信号是 SIGKILL(编号为 9),一般用于强制终止一个容器。但也可以使用其他信号进行优雅地终止容器,比如 SIGTERM(编号为 15)SIGTERM 是一个终止信号,通常会要求容器优雅地关闭。

  • 与容器交互式地停止:
docker kill -s SIGINT -t 10 <container_id>

这个命令将发送 SIGINT 信号给容器,并且在发送信号后等待 10 秒。SIGINT 是一个终止信号,通常会请求容器进行优雅地关闭。

  • -q, --quiet 选项
    这个选项用于安静模式,命令执行时不会输出任何信息。
docker kill -q <container_id>

这个命令将以安静模式发送 SIGKILL 信号给指定的容器,并且不输出任何信息。

docker pause

docker pause :暂停容器中所有的进程。

语法

docker pause CONTAINER [CONTAINER...]

示例

暂停数据库容器db01提供服务。

docker pause db01

docker unpause

docker unpause :恢复容器中所有的进程。

语法

docker unpause CONTAINER [CONTAINER...]

示例

恢复数据库容器 db01 提供服务。

docker unpause db01

docker pause 命令用于暂停一个或多个正在运行的容器,所有容器内的进程都会被暂停。这可以用于临时暂停容器的运行,

例如在维护或调试容器时。其基本用法如下:

docker pause CONTAINER [CONTAINER...]
docker pause my_container

这个命令将会暂停名为 my_container 的容器。

可以同时暂停多个容器,命令如下:

docker pause container1 container2 container3

如果要恢复暂停的容器,使用 docker unpause 命令:

docker unpause my_container

这个命令将会恢复名为 my_container 的容器。

docker stop 和docker kill区别

docker stop 和 docker kill 都用于停止容器的运行,但它们之间有一些关键的区别:

  1. docker stop:发送一个停止信号给容器,要求容器进行优雅地关闭。容器会收到 SIGTERM 信号,然后有一定的时间进行清理和关闭工作,如保存状态、关闭连接等。如果容器超过指定的时间仍未停止,则 Docker 会发送 SIGKILL 信号来强制停止容器。这样做的目的是尽量避免数据丢失或者状态损坏。
  2. docker kill:发送一个强制终止信号给容器。容器会立即收到 SIGKILL 信号,停止运行,不会有任何清理工作,可能导致数据丢失或者状态损坏。

因此,docker stop 会尝试优雅地关闭容器,而 docker kill 直接强制终止容器的运行。一般来说,建议优先使用 docker stop 来停止容器,以避免可能的数据丢失或损坏,并只在必要时才使用 docker kill。

docker pause和docker unpause的使用场景

docker pause和docker unpause命令在以下场景中可能会有用:

  • 维护操作:当需要对容器进行维护时,可以使用docker pause命令暂停容器的执行。这样可以确保在维护期间容器内的进程暂停,以便进行必要的操作,如修复问题、更新软件等。完成维护后,使用docker unpause命令恢复容器的执行。

  • 资源管理:通过暂停容器,可以释放容器占用的系统资源。这在某些情况下可能很有用,例如当需要为其他重要任务或容器提供更多的资源时,可以暂停一些不紧急的容器,以释放资源。

  • 调试和故障排除:在调试容器时,可以使用docker pause命令暂停容器的执行,以便检查容器内部的状态、日志和进程。这有助于定位和解决问题。一旦调试完成,可以使用docker unpause命令恢复容器的执行。

请注意,暂停容器会导致容器内的进程停止执行,可能会影响容器提供的服务。在使用这些命令时,请确保了解其潜在的影响并谨慎操作。

  • 13
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值