无法访问端口 5601 上 Docker 容器中的 Kibana 运行

Not able to access Kibana running in a Docker container on port 5601

我使用以下 Docker 文件构建了一个 docker 图像。

# gunicorn-flask                                                                                                                                                                         

FROM devdb/kibana

MAINTAINER John Doe <user.name@gmail.com>

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 帮助。

父Docker文件devdb/kibana is using a script to start kibana and elasticsearch when the docker container is started. See CMD ["/sbin/my_init"] and the script本身。

当您在自己的 Docker 文件中使用 CMD 指令时,您会覆盖父 Docker 文件中的指令。 由于您的 CMD 只启动 gunicorn,elasticsearch 和 kibana 永远不会启动。这就是为什么他们各自的网络端口没有响应。

您从中继承的 Docker 图像在其自述文件中从 phusion/baseimage which has its own way of making multiple processes run in Docker containers. I recommend you follow the instructions 继承自身,以了解如何将您的 gunicorn 添加到要启动的服务列表中。基本上,您必须定义一个名为 run 的脚本,并将其添加到 /etc/service/<service name>/ 目录中的 docker 图像。

在您的 Docker 文件中,添加:

COPY run /etc/service/gunicorn/

run 脚本应该类似于:

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