Docker重新启动策略

Docker重新启动策略,docker,Docker,我浏览了docker compose的文档,发现版本3有一个部署重启策略,但它只适用于swarm。我尝试在我的服务上设置重新启动策略,但出现以下错误: ERROR: The Compose file './docker-compose.yml' is invalid because: Unsupported config option for services.web: 'restart_policy' 有没有办法在swarm之外使用docker compose创建的服务上设置重启策略?版本2

我浏览了docker compose的文档,发现版本3有一个部署重启策略,但它只适用于swarm。我尝试在我的服务上设置重新启动策略,但出现以下错误:

ERROR: The Compose file './docker-compose.yml' is invalid because:
Unsupported config option for services.web: 'restart_policy'

有没有办法在swarm之外使用docker compose创建的服务上设置重启策略?

版本2支持重启策略,使用
restart
关键字,如果您不需要swarm(您说您不需要/想要swarm),应该可以正常工作

版本:“2”
服务:
网状物:
图片:apache
重新启动:始终


Compose format version 3有一个名为
restart_policy
的参数,但从文档中我可以看出,它仅作为
部署
的一部分有效,仅在部署到Swarm时使用。因此,版本3在您的情况下可能没有用处。

它看起来像是文档中的一个空白

在第三个版本中,我们仍然可以在服务内部使用“重启”,与在v.2中使用的相同(除了部署到swarm中)


即使您不是处于swarm模式下,也有一个名为的选项,该选项将与重新启动策略一起使用,即使您没有部署,也会尝试重新启动。唯一的问题是“延迟”和“窗口”的子键将被忽略。以下是一个例子:

version: '3.7'
services:
  build:
    context: .
    dockerfile: Dockerfile
  container_name: example
  deploy:
    restart_policy:
      condition: on-failure
      max-attempts: 3
运行以下命令:

docker-compose -f docker-compose.yml --compatability up

您需要版本3的撰写文件吗?转换到版本3的目的是为了swarm支持。问题是关于版本3的,请尝试更新答案?我认为问题中的错误是因为使用了非版本3的撰写文件used@cricket_007从文档中获取的AICT,
重新启动\u策略
仅在
部署
中有效,甚至仅在执行Swarm时使用。由于OP询问不使用Swarm,我觉得我的原始答案应该保持原样。版本3表示建议所有新的撰写文件都使用Swarm<代码>重新启动仅被重命名,AFAICT@cricket_007
restart\u policy
deploy
的一个子选项,文档中的
deploy
说明“这仅在部署到具有
docker stack deploy
的群集时生效,
docker compose up
docker compose run
忽略此选项”我不认为
:5
是API的文档化部分。我错过了吗?你能澄清一下这件事的意图吗?文件中似乎有。:5仍然没有记录,显然是“最大重试次数”。我是这样使用的:
restart:inspect stopped:5
and get maximum retry count不能与重启策略“inspect stopped”一起使用。我用0代替了5,它起作用了抱歉这个愚蠢的问题,但我不明白你所说的“除了部署到swarm中”。
restart:on failure:5
是否在swarm之外工作,即我在版本
3
中所做的
docker compose
?未记录的最大重试次数可以在源代码中找到。从文档中可以看出:请勿在生产中使用此选项!
docker-compose -f docker-compose.yml --compatability up