Comment exécuter une distribution Linux dans un conteneur
Ce tutoriel est écrit à la première personne par Barry Kauler (BarryK sur les forums). Passage en mode première personne dès maintenant ...
EasyOS
est capable d'exécuter une application dans un
conteneur, mais peut également exécuter une
distribution Linux complète. Cette
page Ouèb présente les conteneurs du point de
vue de l'utilisateur :
Utilisation
des conteneurs dans Easy
... qui montre un exemple de bureau de distribution entière s'exécutant dans un conteneur. Il y a également des informations du point de vue du développeur sur la compilation du code source à l'intérieur d'un conteneur.
La page que vous lisez est grandement du point de vue du développeur, en montrant comment une distribution Linux différente peut être convertie pour s'exécuter dans un conteneur dans EasyOS.
Jusqu'à présent, je n'avais fait cela qu'avec divers dérivés de Puppy Linux, car le script de conversion 'dir2sfs' est dépendant de certaines fonctionnalités de Puppy. Cependant, en théorie, toute distribution Linux peut être convertie.
L'étude
de cas de cette page concerne EasyOS 64 bits
exécuté sur le Raspberry Pi4 et la conversion
de RasPup pour qu'il s'exécute dans un
conteneur. Au
moment de la rédaction de cet article, EasyOS
n'est pas encore sorti pour le Pi4, mais
devrait l'être bientôt - surveillez mon
blog.
RasPup
Il s'agit d'une version «officielle» de Puppy Linux, qui fonctionne sur toutes les cartes Pi, du Pi0 au Pi4. Il a été créé par Michael Amadio (01micko sur les forums), et il est construit en woof-CE avec les paquets DEB de Raspbian Buster. L'architecture est «armhf», 32 bits. Voici la page d'accueil du projet :
http://raspup.eezy.xyz/index.php
Forum de discussion :
https://forum.puppylinux.com/viewforum.php?f=141
La version 8.2.1 est ici :
http://distro.ibiblio.org/puppylinux/arm/puppy-raspup-8.2.1/
Notez
que Michael a également un blog:
Après avoir téléchargé «raspup-8.2.1-a60dc46d9-2gb-f2fs.img.zip» et «raspup-8.2.1-a60dc46d9-2gb-f2fs.img.zip.md5.tx», j'étais prêt à faire la conversion. ..
Extraire le rootfs (système de fichiers racine) de l'image
«dir2sfs» est un script qui effectue la conversion. Il est très facile à utiliser, cependant, certains choix peuvent ne pas être évidents, ce tutoriel est donc utile. «dir2sfs» a besoin d'un dossier contenant «rootfs» (le système de fichiers racine) ...
Tout d'abord, j'ai extrait «puppy_raspup_8.2.1.sfs» du fichier téléchargé. Vous pouvez développer le fichier téléchargé, puis monter la première partition ou écrire le fichier sur une clé USB. Quoi qu'il en soit, vous devez extraire ce fichier SFS. Ce que j'ai fait .
Si
vous utilisez Puppy ou EasyOS, vous pouvez
simplement cliquer sur un SFS pour le monter
et en voir le contenu. Pour
les autres distributions Linux, vous devrez
utiliser quelque chose comme «mount -t
squashfs <fichier sfs> <point de
montage>». Détails
des étapes :
- J'ai donc cliqué sur «puppy_raspup_8.2.1.sfs» pour le monter, puis j'ai créé un dossier ailleurs, nommé «raspup_8.2.1_armhf».
- J'ai
ouvert un terminal et copié tous les
fichiers du SFS dans «raspup_8.2.1_armhf» :
# cp -a * /mnt/sda1/downloads/downloads2/input568/0-raspup/raspup_8.2.1_armhf/
# sync - J'ai fermé la fenêtre du terminal et j'ai cliqué à nouveau sur le SFS pour le démonter.
J'ai maintenant un dossier avec tout RasPup à l'intérieur. Mais il y a un tout petit problème :
«dir2sfs» essaie de trouver l'image du logo pour raspup, mais, dans ce cas, il a besoin d'aide. Le script trouvera «raspup48.png» dans /user/share/pixmaps, qui n'est pas un logo approprié. raspup_8.2.1_armhf/usr/share/pixmapsdoit contenir 48x48 «raspup.png» car il sera utilisé comme icône de bureau - je l'ai obtenu sur la page d'accueil de RasPup en ligne. J'ai également remplacé «raspup48.png» par ce logo correct, car «dir2sfs» le considérera également comme le candidat du logo.
dir2sfs
Maintenant, pour utiliser réellement «dir2sfs». En entrée, il nécessite un dossier au format 'name_version [-revision] _arch'. J'ai lancé le script :
# dir2sfs raspup_8.2.1_armhf
Une série de fenêtres popup apparaîssent, voici la première :
... J'ai choisi «desk» (bureau), car nous voulons exécuter RasPup comme un bureau complet.
dans le popup suivant, la fenêtre «SFS package database-entry creator» (Créateur d'entrée de base de données du package SFS), remplissez le cas échéant. Remarque, «Dependencies» (Dépendances) doit être vide et dans «Repository» (Dépôt),«Folder path» (chemin du dossier) défini sur «puppy/debian/buster» :
Ce chemin d'accès au dossier du dépôt est de la forme «distro/compatible-distro/compatible-release». Dans ce cas, il s'agit d'un Puppy, construit avec les DEB Debian, version buster.
La fenêtre suivante propose des choix de sécurité. Cette fenêtre est susceptible de subir des changements dans le futur, mais pour l'instant, voici à quoi elle ressemble :
... J'ai cliqué sur l'onglet «Expert», puis j'ai choisi le serveur X «Xephyr». J'ai laissé tous les autres tels quels. Notez que Xephyr est requis, car RasPup va fonctionner comme un bureau remplissant l'écran, pas dans une fenêtre.
Voilà, «raspup_8.2.1_armhf.sfs», «raspup_8.2.1_armhf.specs» et «raspup.png» ont été créés.
Je
l'ai ensuite enligné dans le dépôt EasyOS SFS:
http://distro.ibiblio.org/easyos/aarch64/packages/sfs/puppy/debian/buster/
C'est tout pour le point de vue du développeur. Maintenant, regardons du point de vue de l'utilisateur ...
sfsget
Le lien en haut de cette page explique comment utiliser «sfsget«. En résumé :
«sfsget» est une icône sur le bureau. Cliquez dessus et vous pouvez télécharger et installer un fichier SFS, soit pour l'exécuter sur le bureau principal, soit dans un conteneur.
Alors, j'ai cliqué sur «sfsget» :
Le fichier SFS a été téléchargé, puis j'ai obtenu la fenêtre suivante :
Tags: dev