Utilisation de conteneurs (Docker/Podman)

Les paquets NeuroFedora étant disponibles dans les dépôts Fedora, ils peuvent également être utilisés dans des conteneurs personnalisés à partir des conteneurs de base Fedora. La communauté Fedora fournit des images de conteneurs pour toutes les versions de Fedora, disponibles sur des plateformes publiques comme Docker Hub : https://hub.docker.com/_/fedora.

Ces conteneurs peuvent être utilisés avec Docker, ou Podman.

Podman est une alternative à Docker qui ne nécessite pas de droits d’administrateur. Il peut être utilisé comme solution de remplacement directe à Docker dans la plupart des cas. Sur un système Fedora, Podman s’installe avec la commande dnf.

sudo dnf install podman

Pour utiliser Docker, veuillez consulter le lien : https://docs.docker.com/engine/install/fedora/ [Documentation Docker]. Fedora inclut également le logiciel Toolbox (https://github.com/containers/toolbox), qui permet d’utiliser des environnements de ligne de commande conteneurisés. Toolbox peut être installé à l’aide de la commande dnf.

sudo dnf installer la boîte à outils

Vous pouvez en apprendre davantage à ce sujet sur le lien : Page de documentation Fedora Silverblue.

Utilisation interactive des conteneurs de distribution Fedora

Vous pouvez commander des autocollants NeuroFedora sur le lien Stickermule : https://www.stickermule.com/uk/account/artworks/2036110 [en utilisant l’illustration approuvée].

Tout d’abord, nous récupérons l’image conteneur Fedora de base :

podman pull fedora:latest

Le nom court « fedora » a été résolu en un alias enregistré (origine : /etc/containers/registries.conf.d/shortnames.conf)

Tentative de récupération de registry.fedoraproject.org/fedora:latest…

Récupération des signatures de la source de l’image

Copie du blob 8fde7942e775 [--------------------------------------] 0,0 o / 0,0 o
Copie de la configuration 79fd58dc76 terminée

Écriture du manifeste dans le répertoire de destination de l’image

Enregistrement des signatures

79fd58dc76113dac76a120f22cadecc3b2d1794b414f90ea368cf66096700053

Nous affichons ensuite l’image de manière interactive.

podman run -it fedora:latest /bin/bash


# Terminal dans le conteneur
[root@95b9db71272f /]#

Cela nous fournit un conteneur avec lequel nous pouvons interagir. Nous pouvons y installer un paquet comme nous le ferions sur une installation Fedora, par exemple :

[root@95b9db71272f /]# sudo dnf install python3-nest

Dernière vérification de l'expiration des métadonnées : il y a 6 minutes et 14 secondes, le mercredi 6 janvier 2021 à 10:41:28.
Dépendances résolues.

==================================================================================

Paquet Arch Version Dépôt Taille

================================================================================

Installation :

python3-nest x86_64 2.20.1-5.fc33 mises à jour 518 ko

Installation des dépendances :

....
....
Terminé !

Nous pouvons alors exécuter les commandes normalement :

[root@95b9db71272f /]# ipython

Python 3.9.0 (par défaut, 6 oct. 2020, 00:00:00)
Tapez « copyright », « credits » ou « license » pour plus d'informations.

IPython 7.18.1 — Un interpréteur Python interactif amélioré. Tapez « ?» pour obtenir de l'aide.

Dans [1] : import nest

[INFO] [2021.1.6 11:10:43 /builddir/build/BUILD/nest-simulator-2.20.1/nest-simulator-2.20.1/nestkernel/rng_manager.cpp:217 @ Network::create_rngs_] : Création des générateurs de nombres aléatoires par défaut

[INFO] [2021.1.6 11:10:43 /builddir/build/BUILD/nest-simulator-2.20.1/nest-simulator-2.20.1/nestkernel/rng_manager.cpp:260 @ Network::create_grng_] : Création d'un nouveau générateur de nombres aléatoires global par défaut

06 janv. 11:10:43 CopyFile [Erreur] :

Impossible d'ouvrir le fichier source.

Erreur dans le fichier de ressources imbriqué : /BadIO dans CopyFile_

              -- NEST --

Copyright © 2004 The NEST Initiative

 Version : nest-2.20.1

Date de compilation : 10 août 2020

 Ce programme est fourni « tel quel » et sans aucune garantie.

Consultez le fichier LICENSE pour plus de détails.

 Des problèmes ou des suggestions ?

Rendez-vous sur https://www.nest-simulator.org

 Tapez 'nest.help()' pour en savoir plus sur NEST.


Dans [2] : nest.version()

Sortie [2] : 'NEST nest-2.20.1'

Dans [3] :

Création d’images conteneurs

Bien que le travail interactif soit très utile, il est encore plus avantageux de créer des images conteneurisées avec des ensembles spécifiques de paquets, réutilisables régulièrement. Pour une recherche reproductible, par exemple, une image conteneurisée incluant tous les logiciels et sources nécessaires au modèle, à sa simulation et à l’analyse des données générées est particulièrement précieuse.

Une image de conteneur peut être créée à l’aide d’un fichier Containerfile standard (Dockerfile pour Docker). La documentation complète relative au Containerfile/Dockerfile est disponible à l’adresse suivante : https://docs.docker.com/engine/reference/builder/.

Créons un conteneur d’exemple qui exécute ce court extrait de code.

#!/usr/bin/env python3

# Exemple de fichier source Python

# Enregistré dans le répertoire courant sous le nom nest-test.py
import nest

nid.version()

Notre fichier Containerfile simple ressemble à ceci :

DE fedora:33 en tant que fedora-33

# Installez les paquets requis, ici : NEST

RUN sudo dnf install python3-nest -y

COPIER nest-test.py .

# Commande par défaut à exécuter
CMD ["python", "nest-test.py"]

Nous pouvons ensuite construire notre image de conteneur :

ls
Containerfile  nest-test.py

podman build -f Containerfile -t neurofedora/nest-test

ÉTAPE 1 : FROM fedora:33 AS fedora-33

ÉTAPE 2 : RUN sudo dnf install python3-nest -y

Fedora 33 openh264 (Depuis Cisco) - x86_64 1,9 ko/s | 2,5 ko 00:01
....
Terminé !

--> 2efea29a8db
ÉTAPE 3 : COPY nest-test.py .

--> b23a5c6f90d
ÉTAPE 4 : CMD ["python3", "nest-test.py"]

ÉTAPE 5 : COMMIT neurofedora/nest-test
--> da9240e572b
da9240e572b4c08ac010001cbc15cb81ae879c63dca70afa4b3e6f313254b218

Notre image est maintenant prête à être utilisée :

$ podman image list

DÉPÔT TAG IMAGE ID CRÉÉ TAILLE

localhost/neurofedora/nest-test dernière da9240e572b4 il y a 17 secondes 911 Mo

Lorsqu’il est exécuté, il lance notre script simple :

$ podman run neurofedora/nest-test

[INFO] [2021.1.6 11:36:36 /builddir/build/BUILD/nest-simulator-2.20.1/nest-simulator-2.20.1/nestkernel/rng_manager.cpp:217 @ Network::create_rngs_] : Création des générateurs de nombres aléatoires par défaut

[INFO] [2021.1.6 11:36:36 /builddir/build/BUILD/nest-simulator-2.20.1/nest-simulator-2.20.1/nestkernel/rng_manager.cpp:260 @ Network::create_grng_] : Création d'un nouveau générateur de nombres aléatoires global par défaut

06 janv. 11:36:36 CopyFile [Erreur] :

Impossible d'ouvrir le fichier source.

Erreur dans le fichier de ressources imbriqué : /BadIO dans CopyFile_

              -- NEST --

Copyright © 2004 The NEST Initiative

 Version : nest-2.20.1

Date de compilation : 10 août 2020

 Ce programme est fourni « tel quel » et sans aucune garantie.

Consultez le fichier LICENSE pour plus de détails.

 Des problèmes ou des suggestions ?

Rendez-vous sur https://www.nest-simulator.org

 Tapez 'nest.help()' pour en savoir plus sur NEST.

De la même manière, tout paquet provenant des dépôts Fedora peut être utilisé dans des conteneurs avec dnf (et pas seulement les paquets NeuroFedora). De plus, nous pouvons également inclure des logiciels avec pip et d’autres gestionnaires de paquets, comme sur un système classique.