乐闻世界logo
搜索文章和话题

如何在 Docker 中配置容器自动重启?

1 个月前提问
1 个月前修改
浏览次数20

1个答案

1

在Docker中配置容器自动重启的方法主要是使用重启策略(restart policies)。Docker 提供了几种不同的重启策略,可以根据您的需求选择合适的策略。这些策略包括:

  1. no:这是默认设置,容器在退出时不会自动重启。
  2. always:无论容器的退出状态如何,容器总是会重新启动。
  3. unless-stopped:除非容器被用户明确停止,否则总是重新启动,即使是在Docker守护进程的启动/重启过程中。
  4. on-failure:只有在容器非正常退出时(退出状态非0)时才会重启。可以选择性地指定重启尝试的最大次数。

例如,如果您希望您的容器在出错时自动尝试重启,可以在运行容器时使用 --restart on-failure 选项。这里还可以加上一个可选的重启次数限制,比如:

bash
docker run --restart=on-failure:5 your-image

这个命令会让Docker尝试最多重启容器5次,只有在容器的退出代码不为0时。

如果您想让容器无论退出状态是什么都要重启,可以使用 always 策略:

bash
docker run --restart=always your-image

这样,容器将在停止后总是尝试重启,这在确保关键服务持续运行的生产环境中特别有用。

实际例子来看,假设您有一个Web服务器容器,您希望确保它在崩溃后能自动重启继续提供服务。您可以使用以下命令:

bash
docker run --restart=always -d -p 80:80 your-webserver-image

这条命令设置了 always 重启策略,确保Web服务器在任何退出情况下都会被重新启动,-d 参数使容器在后台运行,-p 80:80 表明将容器内的80端口映射到主机的80端口上,以便外部访问。

通过这样的配置,可以增加容器运行的稳定性和可靠性。

2024年8月9日 14:25 回复

你的答案