首页 > 解决方案 > 无法从 Docker 容器中访问外部 URL

问题描述

我正在尝试从在 AWS EC2 实例上运行的 Docker 容器中访问外部 URL。

虽然我可以从 EC2 实例进行 CURL - 相同的 CURL 在 Docker 容器中不起作用。本质上,此 CURL 在 EC2 实例中有效,但在 Docker 容器中无效。为什么会这样?

卷曲https://elasticsearch.myorg.com

Dockerfile:

FROM docker.elastic.co/kibana/kibana:6.5.0
ENV ELASTICSEARCH_URL=https://elasticsearch.myorg.com
EXPOSE 5601
CMD ["/usr/local/bin/kibana-docker"]

标签: dockeramazon-ec2

解决方案


所以经过大量的反复试验,我终于找到了问题所在。看起来像使用标准运行 docker 映像:

docker run -d -p 5601:5601 my-kibana-image:1

还不够。仅当我将网络配置从默认更改为“主机”时,弹性搜索的主机解析(这是一个外部主机)才有效。这样做

docker run --net=host -d -p 5601:5601 my-kibana-image:1

终于解决了这个问题,kibana 容器实例终于能够与 elasticsearch 对话了!!!Kibana 正确引导,此时我能够很好地启动它。


推荐阅读