我有docker-compose.yml
一个以下文件:
services: kafka_listener: build: . command: bundle exec ./kafka foreground restart: always # other services
然后,我开始使用以下容器: docker-compose up -d
在我的亚马逊实例上,kafka-server(例如)有时无法启动,因此./kafka foregound
脚本失败。键入时,docker ps
我会看到一条消息:Restarting (1) 11 minutes ago
。我以为docker应该立即重新启动失败的容器,但事实并非如此。毕竟,自第一次尝试失败以来,容器已在大约30分钟内重新启动。
有什么方法可以告诉Docker-Compose在失败后立即重启容器吗?
您可以使用以下政策:
on-failure
该on-failure
策略有点有趣,因为它允许您在退出代码指示错误的情况下告诉Docker重新启动容器,而在退出代码指示成功的情况下则不会。您还可以指定Docker自动重新启动容器的最大次数。喜欢on-failure:3
它会重试3次。
unless-stopped
在unless-stopped
重新启动策略表现为总是有一个例外是相同的。当容器停止并且服务器重新启动或Docker服务重新启动时,该容器将不会重新启动。
希望这对您有帮助。
谢谢!