Pau*_*eux 6 docker docker-compose
使用docker stack deploy,我可以看到以下消息:
Ignoring unsupported options: restart
Run Code Online (Sandbox Code Playgroud)
例如,您可以在该页面底部使用Joomla撰写文件查看此消息 .要启动撰写文件:
sudo docker swarm init
sudo docker stack deploy -c stackjoomla.yml joomla
Run Code Online (Sandbox Code Playgroud)
甲撰写YAML文件由两个使用docker-compose工具,对于本地(单主机)开发和测试场景,和群堆栈,用于产生多主机的担忧.
Compose文件中有许多设置只能在一个工具或另一个工具中工作(docker-compose up相对docker stack deploy),因为某些设置特定于dev,而其他设置特定于生产集群.它们在那里是可以的,当有特定工具将忽略的设置时,您将在任一工具中看到警告.这通常适用于build:设置(仅限docker-compose)和deploy:设置(仅限Swarm Stacks).
这里的整个目标是您可以在两个工具中使用的单个文件,并且在该场景中使用撰写文件的相关部分,而其余部分将被忽略.
所有这些都可以参考撰写文件文档中的单个设置.如果你经常在Compose YAML工作,我建议总是在这个页面上打开一个标签,因为我几乎每天都会引用它多年,因为规格不断变化(我们现在在3.4+上).
默认情况下,docker-compose不会重新启动容器,但如果您restart: 按照此处的说明设置单一设置,则可以使用它.但该设置不适用于Swarm Stacks.它将在a中显示为警告,docker stack deploy提醒您该设置不会在Swarm堆栈中生效.
Swarm Stacks使用设置restart_policy:下的deploy:设置,通过多个子设置提供更精细的控制.与所有Stack一样,不必在compose文件中指定默认值,您将在该docs页面上看到它们的默认设置.
设置页面上有一个列表在Swarm堆栈中不起作用,但它看起来不完整,因为restart:设置也应该在那里.我会提交PR来解决这个问题.
此外,在Joomla示例中,您也向我们指出,README似乎也已过时,因为它包含links:在撰写示例中,从Compose版本2开始折旧,不再需要(因为自定义虚拟网络上的所有容器)现在可以达到目的).
如果您docker-compose up的应用程序以独立模式运行在 Docker 主机上,那么 Compose 要做的就是启动容器。一旦这些容器被创建,它就不会监视它们的状态。因此,您需要确保您的应用程序在容器挂掉后仍然可以工作。您可以通过设置restart-policy来做到这一点。
如果您使用 来将应用程序部署到 Docker swarm 中docker stack deploy,情况就会有所不同。创建一个由服务规范组成的堆栈。然后,Docker swarm 确保堆栈中的每个服务始终运行指定数量的实例。如果容器发生故障,swarm 将始终生成一个新实例,以便再次匹配服务规范。在这种情况下,重新启动策略没有任何意义,并且撰写文件中的相应设置将被忽略。
如果您想在集群模式下停止应用程序的容器,您要么必须使用 取消部署整个堆栈,docker stack rm <stack-name>要么使用 来将服务缩放为零docker service scale <service-name>=0。
| 归档时间: |
|
| 查看次数: |
3860 次 |
| 最近记录: |