我目前在管道中使用Docker群集模式,并且我大量使用docker stack deploy -c compose-file.yml name-of-the-stack
作为使用最新码头映像更新堆栈的命令。它完美的工作,除非我不从yaml文件中删除服务。在这种情况下,stack deploy
命令应该在更新另一个服务的图像时除去不再存在的服务,但行为是它使容器运行并且这不是预期的行为。 因为这个我改变它与docker stack rm name-of-the-service
然后docker stack deploy -c compose-file.yml name-of-stack
。但是这有另一个可怕的副作用,随机影响容器:docker stack rm name-of-the-stack
命令往往使nginx容器proxypass的可靠性完全不可靠(似乎与此问题相关https://github.com/docker/docker/issues/24244)。 事实上,nginx容器(即在另一个堆栈中,但在同一覆盖网络中)负责处理容器之间的所有请求,并使用Docker群组模式的路由网格功能在它们之间建立代理通道,在部署堆栈的重新创建之后,无法代理请求,就好像它试图将流量转发到没有更多存在的容器一样,这会导致集成和行为测试失败。 有没有一种方法可以不使用docker stack rm(目前看起来很麻烦)而是应用yml撰写文件的最新状态?码头堆栈部署不会删除当前yaml撰写文件中未声明的服务
2
A
回答
3
您需要在您的docker stack deploy
命令--prune
选项:
$ docker stack deploy --help
Usage: docker stack deploy [OPTIONS] STACK
Deploy a new stack or update an existing stack
Aliases:
deploy, up
Options:
--bundle-file string Path to a Distributed Application Bundle file
-c, --compose-file string Path to a Compose file
--help Print usage
--prune Prune services that are no longer referenced
--with-registry-auth Send registry authentication details to Swarm agents
相关问题
- 1. 码头服务更新与码头堆栈部署与现有堆栈
- 2. 码头部署与码头堆栈部署
- 3. 附加的码头堆栈部署
- 4. 码头堆栈部署本地图像
- 5. 链接运行外部码头到码头服务器撰写服务
- 6. Bluemix部署行为 - 声明的服务
- 7. 码头堆栈群 - 服务副本没有传播到Mutli服务堆栈
- 8. 删除以前的文件部署
- 9. “起始容器失败:su ...”在码头堆栈部署中
- 10. Intent.FLAG_ACTIVITY_CLEAR_TOP不会删除活动堆栈
- 11. 删除堆栈中的顶部片段
- 12. 如何删除YAML文件顶部的“---”?
- 13. 使用客户端API进行码头堆栈部署
- 14. 有关堆栈段声明
- 15. 未能与码头工人堆栈
- 16. 头文件中的声明
- 17. 如何删除不在C#中堆栈顶部的堆栈项目
- 18. WiX - 不删除已部署的文件
- 19. 从导航堆栈中删除当前页面和WebBrowserTask
- 20. 远程应用服务的声明会从package.appxmanifest删除APPX
- 21. 在声明式服务中。当服务被停用时,何时删除引用?
- 22. 从流类型中删除头声明
- 23. 如何删除服务堆栈中的*响应约定?
- 24. 码头运行--net =“主机”相当于码头 - 撰写
- 25. Git的部署:在删除文件时,按文件中删除
- 26. 如何从Acrtivities中清除背堆栈(当前任务)
- 27. MEAN堆栈删除
- 28. 将参数写入(声明)头文件
- 29. 全局声明是堆栈还是堆?
- 30. 头文件包含/前向声明