使用docker stack deploy时提示‘Ignoring unsupported options: restart’,重启策略是否失效?
关于Docker Stack部署时
restart选项被忽略的问题解答 嘿,这个问题我之前也碰到过,给你梳理清楚:
首先,那个提示确实意味着你在Compose文件里写的restart选项没有生效。原因很简单:Docker Swarm模式和单机Docker的重启策略是两套完全不同的配置体系——restart是单机容器的专属配置项,Swarm服务根本不识别它,所以部署时会直接忽略这个字段。
接下来,你完全不需要在Compose文件外单独指定重启策略,只要把配置改成Swarm支持的格式就行:把原来的restart字段替换成deploy块下的restart_policy配置。
举个Joomla的例子,假设你原来的Compose代码是这样的:
joomla: image: joomla restart: always
那改成Swarm兼容的写法应该是:
joomla: image: joomla deploy: restart_policy: condition: any # 可选值:any(任何情况都重启)、on-failure(容器失败时重启)、none(不自动重启) delay: 5s # 重启前的延迟时间 max_attempts: 3 # 最大重试次数 window: 120s # 判断重启是否成功的窗口时间
这样再用docker stack deploy -c stackjoomla.yml joomla部署时,就不会再出现忽略提示,而且重启策略会正常生效。
简单总结:Swarm服务的重启策略必须放在deploy.restart_policy块中,单机的restart配置在Swarm模式下完全不适用,替换成对应配置即可。
内容的提问来源于stack exchange,提问作者Paul Rougieux
相关产品推荐
相关产品推荐

