2015-06-22 100 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 
相關問題