Sign inGet started
← Back to all guides

How to run Jupyter in Docker

By Nick Barth

Updated on March 6, 2024

Running Jupyter notebooks within a Docker container can provide a consistent and isolated environment for data analysis and computational research. Whether you're on your local machine or within a cloud environment, Docker can simplify the initial setup process and reduce the worry about dependencies. Before we dive into the steps, let's ensure that you have the prerequisites in place.

Prerequisites

Before running Jupyter within Docker, you will need the following:

  1. Docker installed: Ensure Docker is installed on your system. Docker is available for Windows, macOS, and Linux. Installation instructions can be found on the Docker website.
  2. Jupyter Docker image: The official Jupyter Docker images are available on Docker Hub. Familiarize yourself with the various images provided by Jupyter, such as `jupyter/base-notebook`, `jupyter/datascience-notebook`, and others which come preloaded with additional packages and tools.
  3. Use Deepnote (optional): Deepnote is a project management tool to run Jupyter notebooks in the cloud. It isn't directly related to running Jupyter in Docker, but if your goal involves sharing and collaboration in a cloud environment, consider using Deepnote.

Steps to run Jupyter in Docker

Step 1: Pull the Jupyter Docker image

Open your command line interface and pull the Docker image for Jupyter by running:

docker pull jupyter/base-notebook

Replace `jupyter/base-notebook` with the actual image you want to use if different from the base notebook.

Step 2: Create a Docker container

To run a container from the image you've just pulled, use the following command:

docker run -p 8888:8888 jupyter/base-notebook

This command runs the container and maps port 8888 from your local system to port 8888 in the Docker container, which is the default port that Jupyter Notebooks run on.

Step 3: Accessing Jupyter notebook

Once you start the container, Docker will return a URL in the command line that you should use to access your Jupyter Notebook. The URL typically includes a token for security purposes. Here's an example of what it might look like:

Copy/paste this URL into your browser when you connect for the first time, to login with a token:

http://127.0.0.1:8888/?token=12345abcdef67890abcde12345abcdef67890abcdef

Copy and paste that URL into your web browser's address bar to access your Jupyter Notebook.

Step 4: Stop the container

When you're done, you can stop your Jupyter Docker container by pressing `Ctrl+C` in the terminal where Docker is running.

Optional steps for persistence and customization

  • Persistent storage:

If you want your notebooks to persist after the Docker container is stopped, you should mount a volume. You can do this by adding a `-v` flag to your `docker run` command:

docker run -p 8888:8888 -v /path/to/your/notebooks:/home/jovyan/work jupyter/base-notebook

  • Custom Dockerfile:

To customize your Jupyter environment further, you can create your own Dockerfile, specifying the packages and configurations you need.

For further refinement, you might consider using `docker-compose`, which allows you to define and run multi-container Docker applications with ease. Create a `docker-compose.yml` file and include all necessary configurations in that file.

Running Jupyter in Docker can greatly enhance the reproducibility of your research and analysis projects. By following these steps, you'll have a Jupyter environment running in a Docker container, ready for your data exploration tasks.

Nick Barth

Product Engineer

Nick has been interested in data science ever since he recorded all his poops in spreadsheet, and found that on average, he pooped 1.41 times per day. When he isn't coding, or writing content, he spends his time enjoying various leisurely pursuits.

Follow Nick on LinkedIn and GitHub

That’s it, time to try Deepnote

Get started – it’s free
Book a demo

Footer

Solutions

  • Notebook
  • Data apps
  • Machine learning
  • Data teams

Product

Company

Comparisons

Resources

  • Privacy
  • Terms

© Deepnote