docker - 无法从 Docker 容器中访问外部 URL

标签 docker amazon-ec2

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

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

curl https://elasticsearch.myorg.com

docker 文件:

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

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

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

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

关于docker - 无法从 Docker 容器中访问外部 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53305161/

相关文章:

java - Docker 构建无法找到 COPY 命令的源文件夹

Docker 凭据存储在没有 Docker Desktop 的 WSL2 上

node.js - 在 443 端口上使用 SSL 运行 Node 应用程序(在 80 上工作)

c# - 快速更新 MSSQL 中的列

ssh - 在 EC2 上运行 Kubernetes

docker - 如何找到用于启动容器的docker-compose.yml?

Docker GELF 记录附加字段

docker - nginx docker proxy_path到服务器中另一个docker的路径

python - 如何使用boto读取S3上的二进制文件?

amazon-web-services - AWS/EC2 中 EIP 和 ENI 的关系