Apache Zeppelin is a fantastic open source web-based notebook. Zeppelin allows users to build and share great looking data visualizations using languages such as Scala, Python, SQL, etc.
Running Apache Zeppelin on Docker is a great way to get Zeppelin up and running quickly. Here are the basic steps:
Pick an OS
Zeppelin runs great on Centos and Ubuntu distros.
Java is generally very easy to install on Unix/Linux systems. For example, the command
apt-get install -y openjdk-7-jdk can be used to install Java 7 (OpenJDK) on Ubuntu.
Installing Zeppelin can be done by downloading and extracting the binary package onto your machine. There are many mirrors from which this package can be downloaded. Here is an example of downloading from a specific mirror, and extracting Zeppelin into the
wget http://apache.cs.utah.edu/zeppelin/zeppelin-0.7.0/zeppelin-0.7.0-bin-all.tgz && \ tar -zxf zeppelin-0.7.0-bin-all.tgz -C /usr/local/
Make sure to update this URL with the version of Zeppelin you are interested in. In this example we use version
0.7.0. See http://zeppelin.apache.org/download.html for a list of available downloads.
Installing Zeppelin can also be done by building from source. To do this you need to download code from the Zeppelin GitHub repository, and build using a tool like Maven.
Once installed, Zeppelin can be started from the installation directory by running
bin/zeppelin.sh. After starting, you should be able to see the Zeppelin UI on
This Dockerfile shows an example of installing Zeppelin on
Ubuntu 16.04 into
/usr/local/zeppelin. Some additional packages such as
vim are also added.
FROM ubuntu:16.04 ENV ZEPPELIN_PORT 8080 ENV ZEPPELIN_HOME /usr/local/zeppelin EXPOSE $ZEPPELIN_PORT #install java RUN apt-get update && \ apt-get install -y software-properties-common && \ add-apt-repository ppa:openjdk-r/ppa && \ apt-get update && \ apt-get install -y openjdk-7-jdk #install other RUN apt-get install -y \ npm \ vim \ wget #install Zeppelin RUN wget http://apache.cs.utah.edu/zeppelin/zeppelin-0.7.0/zeppelin-0.7.0-bin-all.tgz && \ tar -zxf zeppelin-0.7.0-bin-all.tgz -C /usr/local/ && \ mv /usr/local/zeppelin* $ZEPPELIN_HOME WORKDIR $ZEPPELIN_HOME CMD bin/zeppelin.sh
Building the Docker Image
docker build -t zeppelin-simple:0.7.0 . from the directory containing your Dockerfile will create the docker
zeppelin-simple image with a
0.7.0 tag (version of Zeppelin installed).
Creating & Running the Docker Container
docker run -p 8080:8080 zeppelin-simple:0.7.0 can now be used to create a Docker container from this image. The
-p option in the command will map the port 8080 inside to the container to port 8080 on the host machine. The
CMD instruction used in the Dockerfile will start Zeppelin by default when the container is created.
This means Apache Zeppelin is now up and running on your machine and can be accessed at
http://localhost:8080 in your web browser.