假设我有3个容器X,Y和Z.我希望容器Y仅在容器X运行后启动,容器Z仅在Y运行后启动。
我该怎么做?
答案 0 :(得分:2)
你应该考虑重新设计你的应用程序部分,如果它们有如此重的依赖关系,那么它们可能不应该分成不同的容器,或者你应该使用一些解密来避免
你能做的是:
答案 1 :(得分:2)
您可以使用docker-compose
文件和depends_on
选项来控制容器启动顺序
以下是您的示例的docker-compose.yml
的外观:
version: '3'
services:
X:
image: X_image
Y:
image: Y_image
depends_on: X
Z:
image: Z_image
depends_on: Y
注意:
depends_on
在启动Y之前不会等待X“准备就绪” - 直到它正在运行。如果您需要等待服务准备就绪,请参阅Controlling startup order以了解有关此问题的更多信息以及解决此问题的策略。