docker - 无法从 Docker 容器中访问外部 URL
问题描述
我正在尝试从在 AWS EC2 实例上运行的 Docker 容器中访问外部 URL。
虽然我可以从 EC2 实例进行 CURL - 相同的 CURL 在 Docker 容器中不起作用。本质上,此 CURL 在 EC2 实例中有效,但在 Docker 容器中无效。为什么会这样?
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"]
解决方案
所以经过大量的反复试验,我终于找到了问题所在。看起来像使用标准运行 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 正确引导,此时我能够很好地启动它。
推荐阅读
- reactjs - 如何根据设备大小/分辨率制作 Konva-React 响应式(缩放)画布?
- swift - 检索具有多个案例的类字符串
- c++ - 为什么 QtCreator 和 MSVC 使用 QT VS 工具生成的代码不同?
- ssl - 如何将自签名证书与 Web 套接字一起使用
- git - 此存储库已超过其数据配额。负责 LFS 带宽的帐户应购买更多数据包以恢复访问
- python - 了解 PyTorch 的实现
- python - async - 一个任务调用多个并发任务
- typescript - 如何正确键入调用另一个函数并传递可变数量参数的函数
- java - 向我的 jframe 添加图像最终破坏了下一个按钮
- clojure - 为什么映射的 println 只在最后一个 let 块中起作用?