Docker 教程

Docker 重启容器

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

语法

语法如下:

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

重启一个或多个容器

别名:
  docker container restart, docker restart

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

基本用法

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

其中:

  • CONTAINER:要重启的容器的名称或 ID。可以指定一个或多个容器。

例如:

(1)重启单个容器

root@hxvm2:~# docker container restart redis
redis

上面命令将重启 redis 容器。

(2)重启多个容器

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

上面命令将重启 redis 和 41a203fa62c5 容器。

工作原理

当执行 docker container restart 命令时,Docker 会先向容器内的主进程发送一个 SIGTERM 信号,请求容器优雅地停止。如果在一定时间内(默认是 10 秒)容器没有停止,Docker 会发送一个 SIGKILL 信号强制停止容器。

一旦容器停止,Docker 会立即重新启动容器,就像执行了 docker container stop 命令后再执行 docker container start 命令一样。

常见用途

(1)应用程序更新

当需要更新容器内的应用程序时,可以先停止容器,进行更新操作,然后使用docker container restart命令重启容器,使新的应用程序版本生效。

例如,在更新容器内的软件包或配置文件后,重启容器以确保应用程序使用新的设置。

(2)解决容器问题

如果容器出现问题,如性能下降、内存泄漏或其他异常情况,可以尝试重启容器来解决问题。重启容器可以清除可能存在的临时问题或错误状态,使容器恢复正常运行。

例如,如果容器的网络连接出现问题,可以重启容器以重新建立网络连接。

(3)批量操作

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

例如,如果有多个以特定名称开头的容器需要重启,可以使用通配符来重启它们:docker container restart my_container_*。

注意事项

(1)数据保存

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

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

(2)优雅重启

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

例如:docker container restart --time 30 my_container,这将给容器 30 秒的时间来停止和重新启动。

总结

docker container restart 命令是一个方便的工具,用于重启 Docker 容器。在使用时,要注意数据保存和给容器足够的时间来优雅地停止和重新启动,以确保系统的稳定性和数据的安全性。

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