Jupyter Notebook Tutorial: How to Install & use Jupyter?

โšก Smart Summary

Jupyter Notebook is an open-source web application that combines live code, equations, visualizations and narrative text in one shareable document, and it runs equally well on a laptop or an AWS server.

  • ๐Ÿ”˜ Core idea: Code cells, Markdown cells and their output live in one .ipynb file.
  • โ˜‘๏ธ Kernel model: Each notebook binds to a kernel, the process that executes every cell.
  • โœ… Local start: The jupyter notebook command opens the dashboard, where New and Python 3 create a notebook.
  • ๐Ÿงช Run and edit: Green means edit mode, blue means command mode, Alt+Enter runs a cell and adds one.
  • ๐Ÿ› ๏ธ Cloud path: An EC2 key pair, a security group on port 8888 and a Docker image move it to AWS.
  • ๐Ÿ”’ Stay safe: Close and Halt frees the kernel; stopping the instance ends AWS billing.

Jupyter Notebook install and use

What is Jupyter Notebook?

Jupyter Notebook is an open-source web application for writing and sharing live codes, equations, visualizations with rich text elements. It provides a convenient way to write paragraph, equations, titles, links and figures to run data analysis. It is also useful for sharing interactive algorithms with your audience for teaching or demonstrating purpose.

Introduction to Jupyter Notebook App

The Jupyter Notebook App is the interface where you can write your scripts and codes through your web browser. The app can be used locally, meaning you don’t need internet access, or a remote server.

Jupyter Notebook App interface running in a web browser

Each computation is done via a kernel. A new kernel is created each time you launch a Jupyter Notebook.

Current installs ship Notebook 7, built on JupyterLab. jupyter notebook still works, and both read the same .ipynb file.

How to use Jupyter Notebook

In the session below, you will learn how to use Jupyter Notebook. You will write a simple line of code to get familiar with the environment of Jupyter.

Step 1) You add a folder inside the working directory that will contain all the notebooks you will create during the tutorials about TensorFlow.

If Jupyter is missing, run pip install notebook first, as the TensorFlow install guide does. Then open the Terminal and write

mkdir jupyter_tf
jupyter notebook

Code Explanation

  • mkdir jupyter_tf: Create a folder named jupyter_tf
  • jupyter notebook: Open Jupyter web-app

Terminal output after running mkdir jupyter_tf and jupyter notebook

Step 2) You can see the new folder inside the environment. Click on the folder jupyter_tf.

Jupyter dashboard showing the new jupyter_tf folder

Step 3) Inside this folder, you will create your first notebook. Click on the button New and Python 3.

Jupyter New menu with the Python 3 kernel option

Step 4) You are inside the Jupyter environment. So far, your notebook is called Untitled.ipynb. This is the default name given by Jupyter. Let’s rename it by clicking on File and Rename

Jupyter File menu with the Rename command highlighted

You can rename it Introduction_jupyter

Rename Notebook dialog with the name Introduction_jupyter

Inside the Jupyter Notebook interface, you write code, annotation or text inside cells.

Empty Jupyter notebook cell ready for code or text

Inside a cell, you can write a single line of code.

Jupyter cell containing a single line of code

or multiple lines. Jupyter reads the code one line after another.

Jupyter cell containing multiple lines of code

For instance, if you write following code inside a cell.

Example code typed inside a Jupyter code cell

It will produce this output.

Output printed underneath the executed Jupyter cell

Step 5) You are ready to write your first line of code. You can notice the cell has two colors. The green color means you are in the editing mode.

Green cell border indicating Jupyter edit mode

The blue color, however, indicates you are in executing mode.

Blue cell border indicating Jupyter command mode

Your first line of code will print Guru99!. Inside the cell, you can write

print("Guru99!")

There are two ways to run a code in Jupyter:

  • Click and Run
  • Keyboard Shortcuts

To run the code, you can click on Cell and then Run Cells and Select Below

Jupyter Cell menu with Run Cells and Select Below

You can see the code is printed below the cell and a new cell has appeared right after the output.

Guru99 output printed below the cell with a new empty cell added

A faster way to run a code is to use the Keyboard Shortcuts. To access the Keyboard Shortcuts, go to Help and Keyboard Shortcuts

Jupyter Help menu with the Keyboard Shortcuts entry

Below the list of shortcuts for a MacOS keyboard. You can edit the shortcuts in the editor.

Jupyter keyboard shortcut list for macOS

Following are shortcuts for Windows

Jupyter keyboard shortcut list for Windows

Write this line

print("Hello world!")

and try the keyboard shortcut. Alt+Enter executes the cell and inserts a new empty cell below.

Hello world output produced with the Alt+Enter shortcut

Step 6) It is time to close the Notebook. Go to File and click on Close and Halt

Jupyter File menu with the Close and Halt command

Note: Jupyter automatically saves the notebook with checkpoint. If you have the following message:

Jupyter warning that the notebook has unsaved changes

It means Jupyter didn’t save the file since the last checkpoint. You can manually save the notebook

Manually saving a Jupyter notebook checkpoint

You will be redirected to the main panel. You can see your notebook has been saved a minute ago. You can safely logout.

Jupyter main panel listing the saved notebook

Install Jupyter Notebook with AWS

When a dataset outgrows local memory, move the notebook to a cloud server. Below is a step by step process to install and run Jupyter Notebook on AWS:

If you do not have an account at AWS, create a free account here.

We will proceed as follow

Part 1: Set up a key pair

Step 1) Go to Services and find EC2

AWS Services menu with the EC2 entry selected

Step 2) In the panel and click on Key Pairs

EC2 left navigation panel with Key Pairs selected

Step 3) Click Create Key Pair

EC2 Create Key Pair button

  1. You can call it Docker key
  2. Click Create

Create Key Pair dialog with the name Docker key

A file named Docker_key.pem downloads.

Browser download of the Docker_key.pem private key file

Step 4) Copy and paste it into the folder key. We will need it soon.

For Mac OS users only

This step concerns Mac OS users only. Windows and Linux users can jump ahead to Part 2.

You need to set a working directory that will contain the file key

First of all, create a folder named key. For us, it is located inside the main folder Docker. Then, you set this path as your working directory

mkdir Docker/key
cd Docker/key

Terminal creating and entering the Docker/key working directory

Part 2: Set up a security group

Step 1) You need to configure a security group. You can access it with the panel

EC2 navigation panel with Security Groups selected

Step 2) Click on Create Security Group

EC2 Create Security Group button

Step 3) In the next Screen

  1. Enter the Security group name “jupyter_docker” and the description Security Group for Docker.
  2. Add the four inbound rules listed below:
    • ssh: port range 22, source Anywhere
    • http: port range 80, source Anywhere
    • https: port range 443, source Anywhere
    • Custom TCP: port range 8888, source Anywhere
  3. Click Create.

Security group jupyter_docker with SSH, HTTP, HTTPS and TCP 8888 rules

Step 4) The newly created Security Group will be listed

EC2 list showing the newly created jupyter_docker security group

Part 3: Launch instance

You are finally ready to create the instance

EC2 navigation panel with Instances selected

Step 1) Click on Launch Instance

EC2 Launch Instance button

The default server is enough. Choose the Amazon Linux AMI. Screenshots show image 2018.03.0; current consoles offer Amazon Linux 2023, so match labels, not pixels.

AMI stands for Amazon Machine Image. It contains the information required to start an instance that runs on a virtual server in the cloud.

Amazon Linux AMI selection screen in the launch wizard

Note that AWS has a server dedicated to deep learning such as:

  • Deep Learning AMI (Ubuntu)
  • Deep Learning AMI
  • Deep Learning Base AMI (Ubuntu)

All of them come with recent binaries of deep learning frameworks pre-installed in separate virtual environments:

Each image is fully configured with NVIDIA CUDA, cuDNN and NCCL as well as Intel MKL-DNN.

Step 2) Choose t2.micro. It is a free tier server. AWS offers for free this virtual machine equipped with 1 vCPU and 1 GB of memory. This server provides a good tradeoff between computation, memory and network performance. It suits small and medium workloads.

Instance type screen with t2.micro chosen

Step 3) Keep settings default in next screen and click Next: Add Storage

Instance configuration screen left at default values

Step 4) Increase storage to 10GB and click Next

Storage screen with the root volume increased to 10 GB

Step 5) Keep settings default and click Next: Configure Security Group

Tags screen left at default values

Step 6) Choose the security group you created before, which is jupyter_docker

Security group screen with jupyter_docker selected

Step 7) Review your settings and Click the launch button

Review screen before launching the EC2 instance

Step 8) The last step is to link the key pair to the instance.

Key pair selection dialog linking Docker key to the instance

Step 9) Instance will launch

Launch status page confirming the instance is starting

Step 10) Below is a summary of the instances currently in use. Note the public IP

EC2 instance list showing the public IP address

Step 11) Click on Connect

EC2 Connect button for the running instance

You will find the connection details

Connect dialog listing the SSH connection details

Launch your instance (Mac OS users)

First, point the terminal working directory at the folder holding the key-pair file.

run the code

chmod 400 docker.pem

Open the connection with this code.

There are two commands. Sometimes the first one stops Jupyter opening the notebook.

In this case, use the second one to force the connection in Jupyter Notebook on EC2.

# If able to launch Jupyter
ssh -i "docker.pem" ec2-user@ec2-18-219-192-34.us-east-2.compute.amazonaws.com
# If not able to launch Jupyter
ssh -i "docker.pem" ec2-user@ec2-18-219-192-34.us-east-2.compute.amazonaws.com -L 8888:127.0.0.1:8888

The first time, you are prompted to accept the connection

Terminal prompt asking to accept the SSH host fingerprint

Launch your instance (Windows users)

Step 1) Go to this website to download PuTTY and PuTTYgen PuTTY

You need to download

  • PuTTY: launch the instance
  • PuTTYgen: convert the pem file to ppk

PuTTY download page listing PuTTY and PuTTYgen

Now that both programs are installed, you need to convert the .pem file to .ppk. PuTTY can only read .ppk. The pem file contains the unique key created by AWS.

Step 2) Open PuTTYgen and click on Load. Browse the folder where the .pem file is located.

PuTTYgen Load dialog browsing for the .pem file

Step 3) After you loaded the file, you should get a notice informing you that the key has been successfully imported. Click on OK

PuTTYgen notice confirming the key was imported

Step 4) Then click on Save private key. You are asked if you want to save this key without a passphrase. Click on yes.

PuTTYgen prompt to save the private key without a passphrase

Step 5) Save the Key

Saving the converted .ppk private key file

Step 6) Go to AWS and copy the public DNS

AWS console showing the public DNS name of the instance

Open PuTTY and paste the Public DNS in the Host Name

PuTTY session screen with the public DNS in Host Name

Step 7)

  1. On the left panel, unfold SSH and open Auth
  2. Browse the Private Key. You should select the .ppk
  3. Click on Open.

PuTTY SSH Auth screen with the .ppk private key selected

Step 8)

When this step is done, a new window will be opened. Click Yes if you see this pop-up

PuTTY security alert accepting the server host key

Step 9)

You need to login as: ec2-user

PuTTY login prompt with the ec2-user account

Step 10)

You are connected to the Amazon Linux AMI.

Amazon Linux AMI shell banner after a successful login

Part 4: Install Docker

The Docker tutorial covers the container vocabulary used below.

While you are connected to the server through PuTTY or Terminal, you can install the Docker engine.

Execute the following codes. On Amazon Linux 2023, use dnf for yum and systemctl start docker for service docker start.

sudo yum update -y
sudo yum install -y docker
sudo service docker start
sudo usermod -a -G docker ec2-user
exit

Launch again the connection

ssh -i "docker.pem" ec2-user@ec2-18-219-192-34.us-east-2.compute.amazonaws.com -L 8888:127.0.0.1:8888

Windows users reconnect with PuTTY exactly as described above.

Part 5: Install Jupyter

Step 1) Create the Jupyter container from a pre-built image:

## Tensorflow
docker run -v ~/work:/home/jovyan/work -d -p 8888:8888 jupyter/tensorflow-notebook
## Spark
docker run -v ~/work:/home/jovyan/work -d -p 8888:8888 jupyter/pyspark-notebook

Code Explanation

  • docker run: Run the image
  • v: attach a volume
  • ~/work:/home/jovyan/work: Volume
  • 8888:8888: port
  • jupyter/datascience-notebook: Image

For other pre-built images, browse the Jupyter Docker Stacks repository. Since October 2023 these images ship on Quay.io, so pull quay.io/jupyter/tensorflow-notebook or quay.io/jupyter/pyspark-notebook for PySpark; the Docker Hub copies are frozen.

Let the container write into the mounted work folder so notebooks survive a restart:

sudo chown 1000 ~/work

Step 2) Install tree so you can inspect the working directory:

sudo yum install -y tree

Terminal output of the tree command showing the work directory

Step 3) Check the container and its name

Run the commands below in order:

  1. List the running containers:
    docker ps
  2. Read the container log for the Jupyter URL. Here the container is named vigilant_easley:
    docker logs vigilant_easley
  3. Copy the URL, with its token, from the log.

docker ps and docker logs output with the Jupyter token URL

Step 4) In the URL from the log, replace the host (90a3c09282d6 or 127.0.0.1) with your instance public DNS:

http://(90a3c09282d6 or 127.0.0.1):8888/?token=f460f1e79ab74c382b19f90fe3fd55f9f99c5222365eceed

Jupyter login page served from the EC2 instance

Step 5) The new URL becomes,

http://ec2-174-129-135-16.compute-1.amazonaws.com:8888/?token=f460f1e79ab74c382b19f90fe3fd55f9f99c5222365eceed

Step 6) Copy and paste the URL into your browser.

Jupyter Opens

Jupyter dashboard opened from the container

Step 7) You can now create a new notebook inside your work folder.

New notebook created inside the mounted work folder

Part 6: Close connection

Close the connection in the terminal

exit

Go back to AWS and stop the server.

AWS console used to stop the EC2 instance

Troubleshooting

If Docker does not work, rebuild the image using

docker run -v ~/work:/home/jovyan/work -d -p 8888:8888 jupyter/tensorflow-notebook

FAQs

Notebook 7 opens one document per tab and keeps the classic dashboard. JupyterLab adds a file browser, terminals and side-by-side notebooks. Both share the same kernels and .ipynb format.

Python arrives by default through the IPython kernel. Community kernels add R, Julia, Scala and dozens more. Install the kernel package, then pick it from the New menu.

Use the Kernel menu: Restart clears every variable, Restart & Run All replays the notebook cleanly, and Change kernel switches environment. Restarting is the fastest fix when a cell hangs.

Magics are IPython shortcuts. Line magics start with % and act on one line, such as %timeit. Cell magics start with %% on the first line, such as %%writefile. Run %lsmagic to list them.

Choose File, then Save and Export Notebook As, or run jupyter nbconvert –to html notebook.ipynb in a terminal. PDF export also needs a LaTeX or WebPDF backend installed.

Keep the token or set a password hash, restrict the port 8888 security-group rule to your own IP rather than Anywhere, and use HTTPS or an SSH tunnel. Stop the instance afterwards.

Yes. Copilot works in notebooks opened through VS Code or JupyterLab extensions, suggesting whole cells from a comment. Agentic assistants also refactor cells and explain tracebacks, but every suggestion needs review before you run it.

AI assistants speed up repetitive data analysis work: profiling a dataframe, drafting features, suggesting hyperparameter grids and plotting results. The notebook keeps each suggestion next to its output, so work stays auditable.

Summarize this post with: