问题描述
我需要在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