Docker-compose链接vs external_links
我相信这是一个简单的问题,但我仍然没有从Docker-compose文档中得到它。 链接和external_links有什么区别?
我喜欢external_links,因为我想要核心docker-compose,我想扩展它,而不会覆盖核心链接。
我到底是什么,我正在设置logstash,这取决于elasticsearch。 Elasticsearch是核心的docker-compose,logstash是在依赖的。 所以我不得不在docker-compose中定义弹性search作为参考,因为logstash需要它作为链接。 但是Elasticsearch已经有了自己的链接,我不想在依赖链接中重复它们。
我可以使用external_link而不是链接吗?
我知道,链接将确保链接之前链接,external_link是否会执行相同的?
任何帮助表示赞赏。 谢谢。
当你想链接在同一个docker-compose.yml中的容器时使用links
。 您只需将链接设置为服务名称即可。 喜欢这个:
--- elasticsearch: image: elasticsearch:latest command: elasticsearch -Des.network.host=0.0.0.0 ports: - "9200:9200" logstash: image: logstash:latest command: logstash -f logstash.conf ports: - "5000:5000" links: - elasticsearch
如果你想将docker-compose.yml中的容器链接到另一个未包含在同一个docker-compose.yml中的容器,或者以不同的方式启动,那么你可以使用external_links
并且将链接设置为容器的链接名称。 喜欢这个:
--- logstash: image: logstash:latest command: logstash -f logstash.conf ports: - "5000:5000" external_links: - my_elasticsearch_container
我会build议第一种方式,除非你的用例由于某种原因需要他们不能在同一个docker-compose.yml
我认为external_link
将不会像docker-compose up
命令中的links
一样。
links
等容器启动并获取在etc/hosts
文件中使用的IP地址,因此external_link
已经在docker-compose文件中描述了IP:主机名值的名称。
此外, 链接将被弃用
这里是使用Elasticsearch,Logstash和Kibana的Docker-Compose项目的链接。 你会看到我正在使用链接:
https://github.com/bahaaldine/elasticsearch-paris-accidentology-demo