使用docker stack deploy
,我可以看到如下信息:
Ignoring unsupported options: restart
- 是否意味着重启政策没有到位?
- 是否必须在撰写文件之外指定它们?
您可以看到此消息,例如 Joomla compose file available at the bottom of that page . 启动撰写文件:
sudo docker swarm init
sudo docker stack deploy -c stackjoomla.yml joomla
最佳答案
docker-compose
工具使用 Compose YAML 文件,用于本地(单主机)开发和测试场景,以及 Swarm Stacks,用于生产多主机问题。
Compose 文件中有许多设置仅适用于一种工具或另一种工具(docker-compose up
vs. docker stack deploy
),因为某些设置是特定的开发和其他特定于生产集群的人。它们在那里没关系,当包含特定工具将忽略的设置时,您会在任一工具中看到警告。这在 build:
设置(仅限 docker-compose)和 deploy:
设置(仅限 Swarm Stacks)中很常见。
这里的整个目标是您可以在两个工具中使用的单个文件,并且撰写文件的相关部分在该场景中使用,而其余部分被忽略。
所有这些都可以引用 compose file documentation 中的单个设置。 .如果您经常使用 Compose YAML,我建议您始终在此页面上打开一个选项卡,因为多年来我几乎每天都在引用它,因为规范不断变化(我们现在处于 3.4+ 版本)。
docker-compose 默认不重启容器,但是如果你设置了单一设置 restart:
as documented here 就可以了.但该设置不适用于 Swarm Stacks。它将在 docker stack deploy
中显示为警告,提醒您该设置不会在 Swarm Stack 中生效。
Swarm Stacks 使用 deploy:
设置下的 restart_policy:
,which gives finer control with multiple sub-settings .与所有 Stack 一样,不必在 compose 文件中指定默认值,您会在该文档页面上看到它们的默认设置。
该页面上有一个列表settings that won't work in a Swarm Stack ,但它看起来不完整,因为 restart:
设置也应该在那里。我会提交 PR 来解决这个问题。
此外,在您向我们指出的 Joomla 示例中,README 似乎也已过时,因为它在 compose 示例中包含 links:
,即 depreciated as of Compose version 2 ,并且不再需要(因为自定义虚拟网络上的所有容器现在都可以相互访问)。
关于docker - Docker 消息是否为 : "Ignoring unsupported options: restart" mean the restart policy is ignored?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48111049/