从主机访问服务时端口和不链接

当我将容器内的暴露端口连接到主机端口时,一切都按预期工作。

docker run -d -p 9200:9200 -p 9300:9300 elasticsearch curl -XGET localhost:9200/_cat/indices 

但是,当我不使用端口选项与运行命令,我无法连接。

 # docker run -d elasticsearch # docker inspect 87c6bcb3b67e | grep IPAddress "SecondaryIPAddresses": null, "IPAddress": "172.17.0.3", "IPAddress": "172.17.0.3", # curl -XGET 127.17.0.3:9200/_cat/indices curl: (7) Failed to connect to 127.17.0.3 port 9200: Connection refused 

我可以login到容器并访问elasticsearch没有任何问题。 喜欢这个…

 # docker exec -it 2ec9026b755e bash # curl -XGET localhost:9200/_cat/indices 

即使端口未链接,是否有任何方法可以从主机访问elasticsearch?

即使端口未链接,是否有任何方法可以从主机访问elasticsearch?

通常没有:这是什么容器是:提供隔离。 这允许您启动许多容器,每个容器在同一个端口上运行。