【发布时间】:2021-09-25 17:49:54
【问题描述】:
我有一个 docker-compose.yml 文件:
version: '3'
services:
elasticsearch:
image: elasticsearch:7.13.3
container_name: elasticsearch
environment:
- "cluster.name=elasticsearch"
- "discovery.type=single-node"
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
volumes:
- /Users/markcwg/mydata/elasticsearch/plugins:/usr/share/elasticsearch/plugins
- /Users/markcwg/mydata/elasticsearch/data:/usr/share/elasticsearch/data
ports:
- 9200:9200
- 9300:9300
kibana:
image: kibana:7.13.3
container_name: kibana
links:
- elasticsearch:es
depends_on:
- elasticsearch
environment:
- "elasticsearch.hosts=http://es:9200"
ports:
- 5601:5601
logstash:
image: logstash:7.13.3
container_name: logstash
volumes:
- /Users/markcwg/mydata/logstash/logstash-springboot.conf:/usr/share/logstash/pipeline/logstash.conf
depends_on:
- elasticsearch
- kibana
links:
- elasticsearch:es
ports:
- 4560:4560
运行docker-compose up -d 为所有图像文件创建了容器。所有容器都运行成功但问题是容器之间不能通过别名进行交互(yml文件中的'es',使用'elasticsearch'就可以了)
我在 https://docs.docker.com/compose/ 上找不到答案
简而言之,为什么链接别名不起作用? 还是我哪里出错了?
【问题讨论】:
-
links是一项旧功能,不应使用。正如您所注意到的,您已经可以使用elasticsearch访问该服务,即使您删除了链接指令也是如此。不知道为什么别名不起作用。 -
@super - 在查看最新的docker compose spec 时,似乎
links又回来了 -
links:仍然是 Compose 文件格式的一部分(删除它会破坏兼容性),但没有理由使用它; Docker 网络可以完成您过去需要链接的所有事情。
标签: docker elasticsearch docker-compose alias elk