Comment exécuter une distribution Linux dans un conteneur

17 janvier 2021— BarryK

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:

http://01micko.com/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 :

  1. 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».
  2. 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
  3. 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 :

img1

... 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» :

img2

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 :

img3

... 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» :

img4

Le fichier SFS a été téléchargé, puis j'ai obtenu la fenêtre suivante :

img5

... j'ai cliqué sur «NEW» (NOUVEAU), c'est tout, une icône est apparue sur le bureau, rejoignant les autres conteneurs:

img6

J'ai cliqué sur «raspup» et l'écran a basculé sur le bureau RasPup. Avec le message sur l'écran que «ALT-F6» permettra de retourner au bureau principal. Oui, on peut basculer entre les deux, c'est super, on ne se lasse pas de faire ça!

Tags: dev