在docker中设置齐柏林飞艇而不使用内置图像

问题描述

我需要在docker中安装zeppelin而不使用内置映像,因为它的大小很大(以gb为单位)。所以我想从二进制文件中安装zeppelin,例如zeppelin-0.8.2-bin-netinst.tgz(仅火花解释器318 mb)

我的Dockerfile

FROM openjdk:8
RUN wget -O /tmp/zeppelin-0.8.2-bin-netinst.tgz https://mirror.downloadvn.com/apache/zeppelin/zeppelin-0.8.2/zeppelin-0.8.2-bin-netinst.tgz
RUN tar -xvzf /tmp/zeppelin-0.8.2-bin-netinst.tgz -C /opt && rm /tmp/zeppelin-0.8.2-bin-netinst.tgz
EXPOSE 8080

然后我构建docker映像并运行容器

docker build -t test:1.0 .
docker run -p 8080:8080 -it test:1.0 /bin/bash

然后启动齐柏林飞艇手册

/opt/zeppelin-0.8.2-bin-netinst/bin/zeppelin-daemon.sh start

我收到了结果

Zeppelin start                                             [  OK  ]

但是,当我从http:// localhost:8080 /的浏览器访问齐柏林飞艇时。我收到了:

This page isn’t working
localhost didn’t send any data.
ERR_EMPTY_RESPONSE

我尝试运行一些命令 bin / zeppelin.sh ,但没有任何显示 我在哪里错了?

我使用 docker ps 命令检查我的容器,结果为:

5d37f4a18a53        test:1.0            "/bin/bash"         27 minutes ago      Up 27 minutes       0.0.0.0:8080->8080/tcp   brave_bardeen

然后我从docker主机进行telnet: telnet localhost 8080 ,它可以正常工作。为什么我无法从浏览器访问齐柏林飞艇?

感谢与问候

解决方法

我发现了一些有用的帖子: Zeppelin fails to load on docker: logErrors docker zeppelin

我们需要设置ZEPPELIN_ADDR = 0.0.0.0,现在我可以从浏览器本地主机访问齐柏林飞艇了

docker run -p 8080:8080 -e ZEPPELIN_ADDR=0.0.0.0 -it test:1.0 /bin/bash

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...