Docker-撰写链接 vs external_links
Docker-compose links vs external_links
我认为这是一个简单的问题,但我仍然没有从 Docker-compose 文档中得到它。 links 和 external_links 有什么区别?
我喜欢 external_links,因为我希望拥有核心 docker-compose,并且我希望在不覆盖核心 link 的情况下扩展它。
我到底有什么,我正在尝试设置依赖于 elasticsearch 的 logstash。 Elasticsearch 在核心 docker-compose 中,而 logstash 在依赖项中。所以我不得不在依赖的 docker-compose 中定义弹性搜索作为参考,因为 logstash 需要它作为 link。但是 Elasticsearch 已经有它自己的 links,我不想在相关的中重复它们。
我可以用 external_link 代替 link 吗?
我知道 links 会确保 link 在 linking 之前先启动,external_link 会做同样的事情吗?
感谢任何帮助。谢谢
我认为 external_link
不会像 docker-compose up
命令中的 links
那样。
links
等待容器启动并获取 etc/hosts
文件中使用的 IP 地址,因此 external_link
已经 IP:hostname 值 [=] 中描述的名称24=]-编写文件。
当您想要 link 同一 docker-compose.yml 中的容器时,请使用 links
。您需要做的就是将 link 设置为服务名称。像这样:
---
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
如果您想 link docker-compose.yml 中的一个容器到另一个未包含在同一 docker-[=20= 中的容器] 或以不同的方式启动,那么您可以使用 external_links
并将 link 设置为容器的名称。像这样:
---
logstash:
image: logstash:latest
command: logstash -f logstash.conf
ports:
- "5000:5000"
external_links:
- my_elasticsearch_container
我会建议第一种方式,除非你的用例出于某种原因要求它们不能在同一个 docker-compose.yml
这是一个使用 Elasticsearch、Logstash 和 Kibana 的 link 到 Docker-Compose 项目。你会看到我正在使用 links:
https://github.com/bahaaldine/elasticsearch-paris-accidentology-demo
我认为这是一个简单的问题,但我仍然没有从 Docker-compose 文档中得到它。 links 和 external_links 有什么区别?
我喜欢 external_links,因为我希望拥有核心 docker-compose,并且我希望在不覆盖核心 link 的情况下扩展它。
我到底有什么,我正在尝试设置依赖于 elasticsearch 的 logstash。 Elasticsearch 在核心 docker-compose 中,而 logstash 在依赖项中。所以我不得不在依赖的 docker-compose 中定义弹性搜索作为参考,因为 logstash 需要它作为 link。但是 Elasticsearch 已经有它自己的 links,我不想在相关的中重复它们。
我可以用 external_link 代替 link 吗?
我知道 links 会确保 link 在 linking 之前先启动,external_link 会做同样的事情吗?
感谢任何帮助。谢谢
我认为 external_link
不会像 docker-compose up
命令中的 links
那样。
links
等待容器启动并获取 etc/hosts
文件中使用的 IP 地址,因此 external_link
已经 IP:hostname 值 [=] 中描述的名称24=]-编写文件。
当您想要 link 同一 docker-compose.yml 中的容器时,请使用 links
。您需要做的就是将 link 设置为服务名称。像这样:
---
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
如果您想 link docker-compose.yml 中的一个容器到另一个未包含在同一 docker-[=20= 中的容器] 或以不同的方式启动,那么您可以使用 external_links
并将 link 设置为容器的名称。像这样:
---
logstash:
image: logstash:latest
command: logstash -f logstash.conf
ports:
- "5000:5000"
external_links:
- my_elasticsearch_container
我会建议第一种方式,除非你的用例出于某种原因要求它们不能在同一个 docker-compose.yml
这是一个使用 Elasticsearch、Logstash 和 Kibana 的 link 到 Docker-Compose 项目。你会看到我正在使用 links:
https://github.com/bahaaldine/elasticsearch-paris-accidentology-demo