我以ubuntu为基础从dockerfile构建了一个docker镜像。 我在其中手动安装elasticsearch kibana气流。我的容器的IP是 172.17.0.2 。我可以从172.17.0.2:8080从主机访问Airflow的Web UI。但是无法分别以172.17.0.2:5601和172.17.0.2:9200访问Kibana或elasticsearch。
以下是我的dockerfile中用于安装elasticsearch的摘录
RUN wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | apt-key add -
RUN echo "deb https://artifacts.elastic.co/packages/6.x/apt stable main" | tee -a /etc/apt/sources.list.d/elastic-6.x.list
RUN apt-get update
RUN apt-get install elasticsearch
请咨询, 谢谢!
答案 0 :(得分:0)
实际上,我不知道您如何访问172.17.0.2:8080
。但是常见的方法应该是发布端口,请参见this。
对于您的情况,可能类似于:
docker run -it -p 5601:5601 -p 8080:8080 -p 9200:9200 your_image
然后,使用your_host_ip:5601
,your_host_ip:8080
等(不是容器ip)访问容器服务。
答案 1 :(得分:0)
如果您已成功将kibana和docker安装在docker image内置容器中,则必须 EXPOSE 设置 kibana默认端口5601 和 elasticsearch默认端口9200 ,然后从本地主机访问它。您可以通过两种不同的方式来实现。例如:在dockerfile EXPOSE 5601 9200 8080
上或在运行容器时。因此,如果您想访问位于Airflow容器中的Kibana UI或Elasticsearch,则可以删除现有容器并使用端口暴露重新运行它。假设-
docker run -it --name webui_kibana_elasticsearch -p 5601:5601 -p 9200:9200 -p 8080:8080 ec45652e2ca4 /bin/bash
在dockerfile构建时,
EXPOSE 8080 5601 9200
或者,如果您想在单独的docker容器中使用Kibana和Elasticsearch,那么此文章将为您提供肯定的帮助。
在此处查看
https://docs.swiftybeaver.com/article/33-install-elasticsearch-kibana-via-docker 和
https://gist.github.com/sany2k8/347690434b282369890057d094218c7f