Template JupyterLab

Environnement interactif pour l'analyse de données et le calcul scientifique

Responsable : M. Rousseau mickael.rousseau@univ-tours.fr

Description du template

Ce template configure un environnement pour exécuter des notebooks Jupyter dans un conteneur Docker, avec une gestion sécurisée des données et une personnalisation facile. Ce template est idéal pour les étudiants et les chercheurs souhaitant un environnement de calcul interactif pour des projets scientifiques, mathématiques ou d'analyse de données.

Service JupyterLab

Notebooks interactifs

Environnement basé sur l'image officielle Jupyter Data Science Notebook

Outils préinstallés

Python, R, Julia, et bibliothèques comme NumPy, Pandas, Matplotlib

Volume persistant

Sauvegarde des travaux dans un volume dédié

Service sécurisé

Protégé par un token ou mot de passe configurable

Informations du template
  • Image : jupyter/datascience-notebook
  • Port : 8888
  • Authentification : Token
  • Volume : Persistant
  • Type : DSI Université
DSI Université Data Science Python

Fonctionnalités principales

Voici les principales caractéristiques du service JupyterLab :

  • Volume persistant permettant de sauvegarder vos travaux dans un volume dédié afin de conserver les modifications entre différents démarrages du conteneur
  • Service protégé par un token ou un mot de passe défini par une variable d'environnement lors de la création du container
Avec ce template, les utilisateurs disposent d'un environnement de calcul interactif prêt à l'emploi, parfaitement adapté à des besoins en analyse de données, calcul scientifique, ou enseignement.

Exemples pour tester l'environnement

Algorithme de tri

Exemple d'algorithme de tri par sélection avec mesure de performance :

import time
import random

# Fonction de tri par sélection
def selection_sort(arr):
    n = len(arr)
    for i in range(n):
        min_idx = i
        for j in range(i + 1, n):
            if arr[j] < arr[min_idx]:
                min_idx = j
        arr[i], arr[min_idx] = arr[min_idx], arr[i]

# Générer une liste aléatoire
size = 10
random_list = [random.randint(1, 100) for _ in range(size)]
print("Liste avant tri :", random_list)

# Mesurer le temps d'exécution
start_time = time.time()
selection_sort(random_list)
end_time = time.time()

print("Liste après tri :", random_list)
print(f"Temps d'exécution : {end_time - start_time:.6f} secondes")
Visualisation animée

Exemple d'animation avec matplotlib :

import numpy as np
import matplotlib.pyplot as plt
from matplotlib.animation import FuncAnimation

# Configuration de la figure
fig, ax = plt.subplots()
x = np.linspace(0, 2 * np.pi, 100)
line, = ax.plot(x, np.sin(x))

# Fonction d'animation
def update(frame):
    line.set_ydata(np.sin(x + frame / 10))
    return line,

# Animation
ani = FuncAnimation(fig, update, frames=range(100), interval=50, blit=True)
plt.show()

Docker Compose du Template

Configuration Docker Compose
version: '3'
services:
  jupyter:
    image: jupyter/datascience-notebook:latest

    volumes:
      - volume-jupyternotebook-notebook-{{USERNAME}}:/home/jovyan/work
    ports:
      - "0:8888"
    container_name: jupyter_notebook-{{USERNAME}}
    environment:
      - JUPYTER_TOKEN={{PASSWORD}}

volumes:
  volume-jupyternotebook-notebook-{{USERNAME}}:
    driver: local

Ressources utiles

Documentation officielle

Documentation complète de Jupyter

Consulter
Accès Portainer

Déployez votre environnement Jupyter

Accéder

Prêt à analyser des données ?

Déployez votre environnement JupyterLab en quelques clics

Accéder à Portainer Retour aux templates