为什么这会有什么不同? docker/mysql/apache2

why would this make any difference? docker/mysql/apache2

我可以大麦解释发生了什么,但请检查一下...我在这里使用 Docker 和 mysql、php、apache2.

如果我像这样立即启动所有内容,情况会有所不同:

docker-compose up mysql apache2

或者如果我决定首先在终端 window 中只启动 mysql,如下所示:

docker-compose up mysql

并在单独的终端中 window apache2:

docker-compose up apache2

如果我一次全部启动,它会发生很多次,但我最终会遇到以下错误:

Missing Tablespace

有时使用

会有所帮助
docker-compose down

紧随其后的是另一个

docker-compose up mysql apache2

但大多数时候错误是一致的。我可以通过单独启动系统来始终避免此错误 windows,首先 mysql - 一旦它启动我启动 apache2.

这怎么可能?我没有足够的 docker 知识来理解这类问题,但我愿意。在我看来,在实际应用程序被请求击中之前,apache 不应该与 mysql 对话?

非常感谢任何建议 - 如果需要更多信息,请告诉我

docker-compse.yaml 中有一个名为 depends_on 的选项,用于定义启动服务的要求顺序:

version: '3.4'
services:
  mysql:
    image: mysql:5.6
  apache2:
    image: httpd:alpine
    depends_on:
      - mysql

然后,您应该使用 docker-compose up 启动两者。

参考:https://docs.docker.com/compose/compose-file/#depends_on