2015-06-22 102 views
0

我已经使用以下Docker文件构建了一个Docker镜像。无法访问在端口5601上的Docker容器中运行的Kibana

# gunicorn-flask                                           

FROM devdb/kibana 

MAINTAINER John Doe <[email protected]> 

ENV DEBIAN_FRONTEND noninteractive 

RUN apt-get update 
RUN apt-get install -y python python-pip python-virtualenv gunicorn 

# Setup flask application 
RUN mkdir -p /deploy/app 

COPY gunicorn_config.py /deploy/gunicorn_config.py 
COPY app /deploy/app 

RUN pip install -r /deploy/app/requirements.txt 

WORKDIR /deploy/app 

EXPOSE 5000 5601 9200 

# Start gunicorn 
CMD ["/usr/bin/gunicorn", "--config", "/deploy/gunicorn_config.py", "listener:app"] 

我正在从该Docker文件创建的映像运行容器,如下所示。

sudo docker run -p 5601:5601 -p 9200:9200 -p 5000:5000 -v /home/Workspace/xits/config/elasticsearch.yml:/opt/elasticsearch/config/elasticsearch.yml -v /home/Workspace/xits/config/kibana.yml:/opt/kibana/config/kibana.yml es-kibana-gunicorn:latest 

我面临的问题是我无法访问我的主机上的Kibana端口5601。我的浏览器页面说ERR_CONNECTION_REFUSED

我能够访问端口5000,虽然。

我想不通为什么这个is.Any帮助将不胜感激。

回答

1

父Dockerfile devdb/kibana是使用脚本启动kibana当搬运工容器开始elasticsearch。见CMD ["/sbin/my_init"]the script本身。

当自己Dockerfile使用CMD指令,您覆盖从父母Dockerfiles之一。 由于您的CMD只启动gunicorn,elasticsearch和kibana永远不会启动。这就是为什么他们各自的网络端口没有响应。

你继承本身继承phusion/baseimage它有自己制作的Docker容器运行多个进程的方式泊坞窗图像。我建议您按照自己的README文件上的instructions了解如何将您的gunicorn添加到要启动的服务列表中。基本上,您必须定义一个名为run的脚本,并将其添加到/etc/service/<service name>/目录中的泊坞窗映像中。

在你Dockerfile,添加:

COPY run /etc/service/gunicorn/ 

run脚本应该类似于:

#!/bin/bash 
cd /deploy/app 
/usr/bin/gunicorn --config /deploy/gunicorn_config.py listener:app 
相关问题