
Exemple 2 : Exécuter un interpréteur Python ou Node.js isolé
Découvrez comment utiliser Docker pour lancer des interpréteurs Python ou Node.js dans des environnements isolés, sans installation locale. Idéal pour tester du code ou des scripts.
Des environnements de développement à la demande
Au-delà du déploiement de services comme Nginx, Docker excelle également à fournir des environnements d'exécution ou de développement isolés à la demande. Imaginez vouloir tester rapidement un script Python avec une version spécifique, ou exécuter une commande Node.js sans avoir Node installé sur votre machine hôte. Docker rend cela trivial.
Cet exemple vous montrera comment lancer un conteneur qui exécute directement un interpréteur interactif (comme le REPL Python ou Node.js). Vous pourrez ainsi exécuter du code directement dans un environnement propre et contrôlé, sans interférer avec les installations existantes sur votre système.
Nous nous concentrerons sur l'utilisation des options `-it` pour l'interactivité et `--rm` pour le nettoyage automatique, deux options très utiles pour ce type de tâche éphémère.
Exécuter un interpréteur Python interactif
Supposons que vous vouliez lancer une session Python 3.9 interactive. Vous pouvez utiliser l'image officielle Python depuis Docker Hub. Tapez la commande suivante :
docker run -it --rm python:3.9Analysons cette commande :
- `docker run` : Lance un nouveau conteneur.
- `-it` : C'est la combinaison de deux options : `-i` (interactive) qui maintient `STDIN` ouvert même si non attaché, et `-t` (tty) qui alloue un pseudo-terminal. Ensemble, elles vous permettent d'interagir avec le processus à l'intérieur du conteneur, ici l'interpréteur Python.
- `--rm` : Cette option très pratique demande à Docker de supprimer automatiquement le conteneur une fois qu'il s'arrête (c'est-à-dire lorsque vous quitterez l'interpréteur Python). C'est idéal pour les tâches ponctuelles afin d'éviter d'accumuler des conteneurs arrêtés inutiles.
- `python:3.9` : C'est le nom de l'image et son tag (version). Docker téléchargera l'image `python` avec le tag `3.9` si elle n'est pas présente localement, puis lancera un conteneur basé sur celle-ci. Par défaut, l'image `python` est configurée pour lancer l'interpréteur Python lorsqu'elle est exécutée sans autre commande.
Après l'exécution, vous devriez voir l'invite de commande Python (`>>>`). Vous êtes maintenant à l'intérieur du conteneur, dans une session Python interactive. Essayez de taper quelques commandes Python :
print("Hello from Docker!")
import os
print(os.uname())Vous verrez la sortie correspondante. Pour quitter l'interpréteur Python (et donc arrêter le conteneur), tapez `exit()` ou appuyez sur `Ctrl+D`. Comme nous avons utilisé l'option `--rm`, le conteneur sera immédiatement supprimé après votre sortie.
Exécuter un interpréteur Node.js interactif
Le principe est exactement le même pour Node.js. Si vous souhaitez lancer une session Node.js interactive (disons avec la version LTS actuelle au moment de l'écriture, par exemple la 18), utilisez l'image officielle `node` :
docker run -it --rm node:18De nouveau, les options `-it` permettent l'interaction et `--rm` assure le nettoyage automatique. L'image `node:18` sera téléchargée si nécessaire, et par défaut, elle lance l'interpréteur REPL de Node.js.
Vous verrez l'invite Node.js (`>`). Essayez quelques commandes JavaScript :
console.log('Node.js inside a container!');
const crypto = require('crypto');
crypto.randomBytes(8).toString('hex');Pour quitter la session Node.js (et arrêter et supprimer le conteneur), tapez `.exit` ou appuyez deux fois sur `Ctrl+C`.
Ces exemples montrent comment Docker peut servir d'outil polyvalent pour accéder instantanément à différents environnements d'exécution sans polluer votre système hôte. C'est extrêmement utile pour les tests rapides, l'expérimentation avec différentes versions de langages ou d'outils, et pour garantir un environnement cohérent pour l'exécution de scripts.