docker工人 – 编写容器开始订购

现在这个link已经在docker-compose.yml被弃用了(我们能够使用新的networkingfunction在容器之间进行通信),我们已经失去了明确定义容器之间依赖关系的方法。 在我们的api-server容器启动之前(我们通过myapp_mysql_1 docker-compose.yml的dns条目myapp_mysql_1连接到mysql),我们现在怎么能告诉我们的mysql容器首先docker-compose.yml

有可能使用“volumes_from”作为解决方法,直到引入了depends_onfunction(下面讨论)。 假设你有一个nginx容器,这取决于php的容器,你可以这样做:

 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_onfunction这可能是一个未来的答案。 由于该function尚未在Docker中实现(从1.9开始)

有个build议在Docker引入的新networkingfunction中引入“depends_on”。 但是关于同样的@ https://github.com/docker/compose/issues/374有一个长时间的争论。因此,一旦它被实现,可以使用depends_on命令来命令容器启动,但是在一时之间,你将不得不诉诸上述方法。