SE4CreationConteneur

De wiki-se.plil.fr
Aller à la navigation Aller à la recherche

Création d'un conteneur

Le but de cette première manipulation est la création d'un conteneur pas à pas sous Linux.

Le système de fichiers

La première étape est de créer un système de fichiers isolé par rapport au système de la machine hébergeur :

  • commencez par créer un fichier disk.img de 10Go sur la station de travail, pour cela vous utiliserez la commande dd, comme fichier source utilisez le générateur de zéro /dev/zero et les options bs (block size) et count ;
  • en tant qu'administrateur créez un système de fichiers sur disk.img avec la commande mkfs (make filesystem), vous pouvez utilisez le système de fichiers ext4 ;
  • toujours en tant qu'administrateur, montez le système de fichiers disk.img sur un répertoire vide (par exemple /tmp/disk que vous aurez préalablement créé) ;
  • vous pouvez enfin installez un système de fichiers Linux minimal sur votre partition virtuelle par la commande debootstrap stable /dev/disk.

Lancement du conteneur

Lancez le conteneur avec la commande du cours. Dans un premier temps n'utilisez que les options -p -m. Vérifiez que les processus du conteneur sont bien isolés, de même pour les montages de systèmes de fichiers. Regardez les interfaces réseau du conteneur, conclusion ? Sortez du conteneur, relancez-le en ajoutant les options -n -u. Vérifiez à nouveau les interfaces réseau du conteneur, conclusion ?

Laissez le conteneur tourner dans son terminal de commande, n'en sortez plus.

Création d'une interface réseau

Créez un commutateur virtuel vide d'interfaces avec les commandes présentées en cours. Créez une interface Ethernet virtuelle avec les commandes présentées en cours. Trouvez le PID du processus unshare du conteneur et déplacez le pair de l'interface Ethernet virtuel dans l'espace de nom du conteneur.

Démarrez toutes les interfaces réseau avec la commande ip link set <IF> up, mettez une adresse IPv4 sur le commutateur virtuelle (e.g. 192.168.0.1/24) et sur le pair dans le conteneur (e.g. 192.168.0.2/24), vérifiez la connexion entre les deux interfaces virtuelles.

Sortie sur Internet

Utilisez les commandes vue en cours pour créer une mascarade sur la station de travail pour le réseau du conteneur. Vérifiez que le conteneur a bien accès aux même machines que la station de travail.