2 Minutes to JupyterLab Notebook on Docker Desktop
Published: 2024-06-04 02:14:13

JupyterLab is a next-generation web-based user interface for Project Jupyter. Project Jupyter is a non-profit, open-source project, born out of the IPython Project in 2014 as it evolved to support interactive data science and scientific computing across all programming languages. Jupyter will always be 100% open-source software, free for all to use and released under the liberal terms of the modified BSD license.


## What is Jupyter?

Jupyter is a large umbrella project that covers many different software offerings and tools, including the popular Jupyter Notebook and JupyterLab web-based notebook authoring and editing applications. The Jupyter project and its subprojects all center around providing tools (and standards) for interactive computing with computational notebooks.

## What is a Notebook?

A notebook is a shareable document that combines computer code, plain language descriptions, data, rich visualizations like 3D models, charts, graphs and figures, and interactive controls. A notebook, along with an editor (like JupyterLab), provides a fast interactive environment for prototyping and explaining code, exploring and visualizing data, and sharing ideas with others.

## What is the difference between Jupyter and Jupyter Notebook?

JupyterLab is a flexible, extensible interface for interactive computing. JupyterLabs enables you to work with documents and activities such as Jupyter notebooks, text editors, terminals, and custom components in a flexible, integrated, and extensible manner. 

Jupyter Notebook offers a simplified, lightweight notebook authoring experience. JupyterLab offers a feature-rich, tabbed multi-notebook editing environment with additional tools like a customizable interface layout and system console

## Notebooks

Jupyter notebooks are documents that combine live runnable code with narrative text (Markdown), equations (LaTeX), images, interactive visualizations and other rich output:

## Architecture of Jupyter

![Image1](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5ub2cqfm81kbzwwdk63d.png)


## The Jupyter Notebook format

Jupyter Notebooks are structured data that represent your code, metadata, content, and outputs. When saved to disk, the notebook uses the extension .ipynb, and uses a JSON structure. For more information about the notebook format structure and specification.

## The Jupyter Notebook Interface

Jupyter Notebook and its flexible interface extends the notebook beyond code to visualization, multimedia, collaboration, and more. In addition to running your code, it stores code and output, together with markdown notes, in an editable document called a notebook. When you save it, this is sent from your browser to the Jupyter server, which saves it on disk as a JSON file with a .ipynb extension.
Jupyter notebooks (.ipynb files) are fully supported in JupyterLab. The notebook document format used in JupyterLab is the same as in the classic Jupyter Notebook. Your existing notebooks should open correctly in JupyterLab. 

Create a notebook by clicking the + button in the file browser and then selecting a kernel in the new Launcher tab. A new file is created with a default name. Rename a file by right-clicking on its name in the file browser and selecting “Rename” from the context menu.

The user interface for notebooks in JupyterLab closely follows that of the classic Jupyter Notebook. The keyboard shortcuts of the classic Notebook continue to work (with command and edit mode). However, a number of new things are possible with notebooks in JupyterLab.

Drag and drop cells to rearrange your notebook. You can drag cells between notebooks to quickly copy content. You can create multiple synchronized views of a single notebook.


![Image2](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2wbei029y1shuimzagk2.png)

The Jupyter server is a communication hub. The browser, notebook file on disk, and kernel cannot talk to each other directly. They communicate through the Jupyter server. The Jupyter server, not the kernel, is responsible for saving and loading notebooks, so you can edit notebooks even if you don’t have the kernel for that language—you just won’t be able to run code. The kernel doesn’t know anything about the notebook document: it just gets sent cells of code to execute when the user runs them


## Getting Started

- Install Docker Desktop
- Ensure that Docker Extensions is enabled
- Search for Jupyter Notebook Extension
- Install the Extension



![Image4](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/tej18xorwl20uqlucxjm.png)


## Click on "New" > "Notebook"

![Image6](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/p299jafmbrv2g69xxgjb.png)

## Select iPyKernel


![Image7](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/pyxdo6mn8v26ds5albqw.png)
 
## Visualising data in the Notebook

Copy the code into the Launcher


```
from matplotlib import pyplot as plt
import numpy as np

# Generate 100 random data points along 3 dimensions
x, y, scale = np.random.randn(3, 100)
fig, ax = plt.subplots()

# Map each onto a scatterplot we'll create with Matplotlib
ax.scatter(x=x, y=y, c=scale, s=np.abs(scale)*500)
ax.set(title="Some random data, created with JupyterLab!")
plt.show()
```

Below is an example of a code cell. We'll visualize some simple data using two popular packages in Python. We'll use [NumPy](https://numpy.org/) to create some random data, and [Matplotlib](https://matplotlib.org) to visualize it.

Note how the code and the results of running the code are bundled together.

![Image8](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qwzks42qpte4m81cqlzu.png)

Here's some random data generated with JupyterLab!


![Image11](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/bqst7iw750gnkyefillp.png)