我有一个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在失败后立即重启容器?
答案 0 :(得分:3)
您可以使用此政策:
on-failure
on-failure
策略有点有趣,因为它允许您告诉Docker如果退出代码指示错误则重新启动容器,但如果退出代码指示成功则不会。您还可以指定Docker自动重启容器的最大次数。比如on-failure:3
它将重试3次。
unless-stopped
unless-stopped
重启策略的行为与以往一样,只有一个例外。当容器停止并重新启动服务器或重新启动Docker服务时,将不会重新启动容器。
希望这可以帮助你解决这个问题。
谢谢!