elasticsearch 如何使用Docker Compose连接到Elasticsearch
我使用Java API从web应用程序连接到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
静态可选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