elasticsearch 如何使用Docker Compose连接到Elasticsearch,elasticsearch,docker-compose,elasticsearch,Docker Compose" /> elasticsearch 如何使用Docker Compose连接到Elasticsearch,elasticsearch,docker-compose,elasticsearch,Docker Compose" />

elasticsearch 如何使用Docker Compose连接到Elasticsearch

elasticsearch 如何使用Docker Compose连接到Elasticsearch,elasticsearch,docker-compose,elasticsearch,Docker Compose,我使用Java API从web应用程序连接到Elasticsearch实例: 静态可选getClient(字符串主机名,int端口){ 返回getHost(hostName).map(host->TransportClient.builder().build()) .addTransportAddress(新的InetSocketTransportAddress(主机、端口)) ); } 静态可选getHost(字符串主机名){ InetAddress主机=null; 试一试{ host=Ine

我使用Java API从web应用程序连接到Elasticsearch实例:

静态可选getClient(字符串主机名,int端口){
返回getHost(hostName).map(host->TransportClient.builder().build())
.addTransportAddress(新的InetSocketTransportAddress(主机、端口))
);
}
静态可选getHost(字符串主机名){
InetAddress主机=null;
试一试{
host=InetAddress.getByName(主机名);
}捕获(未知后异常e){
warn(“无法获取主机:{}”,主机名,e);
}
返回可选。不可用(主机);
}
在切换到之前,我使用

docker run --net=my-network --name=myDb elasticsearch
和我的web应用程序使用

docker run --net=my-network -p 8080:4567 me/myapp
果然,我可以使用
getClient(“myDb”,9300)
连接到数据库

但现在我已经切换到Docker Compose,我不知道如何连接到Elasticsearch。这是我当前的
docker compose.yml

version: '2'

services:
  my-app:
    image: me/myapp
    ports:
      - "8080:4567"
    networks:
      - my-network

  elasticsearch:
    image: elasticsearch
    networks:
      - my-network

networks:
  my-network:
    driver: bridge
可以理解,这导致了一个
UnknownHostException
,因为我没有在
docker compose.yml
中设置Elasticsearch实例的主机名

我该怎么做?

我必须设置一个:

现在,当调用问题中显示的
getClient(“myDb”,9300)时,我可以连接到端口9300上的
myDb

  elasticsearch:
    image: elasticsearch
    networks:
      my-network:
        aliases:
          - myDb