当我将容器中的公开端口链接到主机端口时,一切都按预期工作......
docker run -d -p 9200:9200 -p 9300:9300 elasticsearch
curl -XGET localhost:9200/_cat/indices
但是当我不在运行命令中使用ports选项时,我无法连接。
# 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
我可以登录到容器并访问elasticsearch而没有任何问题。像这样...
# docker exec -it 2ec9026b755e bash
# curl -XGET localhost:9200/_cat/indices
即使端口没有链接,有没有办法从主机访问elasticsearch?
答案 0 :(得分:1)
即使端口没有链接,有没有办法从主机访问elasticsearch?
通常不会:这就是容器的用途:提供隔离。这允许您启动许多容器,每个容器在同一个端口上运行。