docker-组合容器开始订购

docker-compose up container start ordering

现在 links 在 docker-compose.yml 中被弃用(并且我们能够使用新的网络功能在容器之间进行通信),我们失去了一种明确定义容器之间依赖关系的方法容器。现在,我们如何让 mysql 容器在 api-server 容器启动之前先启动向上(通过 docker-compose.yml?

中的 dns 条目 myapp_mysql_1 连接到 mysql

在引入 depends_on 功能(下面讨论)之前,可以使用 "volumes_from" 作为解决方法。假设您有一个依赖于 php 容器的 nginx 容器,您可以执行以下操作:

nginx:
  image: nginx
  ports:
    - "42080:80"
  volumes:
    - ./config/docker/nginx/default.conf:/etc/nginx/conf.d/default.conf:ro
  volumes_from:
    - php

php:
  build: config/docker/php
  ports:
    - "42022:22"
  volumes:
    - .:/var/www/html
  env_file: config/docker/php/.env.development

mongo:
  image: mongo
  ports:
    - "42017:27017"
  volumes:
    - /var/mongodata/wa-api:/data/db
  command: --smallfiles

上述方法中的一个重要警告是 php 的卷暴露给 nginx,这是不希望的。但目前这是一个 docker 可以使用的特定解决方法。

depends_on feature 这可能是一个未来主义的答案。因为该功能尚未在 Docker 中实现(截至 1.9)

There is a proposal to introduce "depends_on" in the new networking feature introduced by Docker. But there is a long running debate about the same @ https://github.com/docker/compose/issues/374 Hence, once it is implemented, the feature depends_on could be used to order the container start-up, but at the moment, you would have to resort to the above approach.