TP sysres IMA5sc 2018/2019 G5

De Wiki d'activités IMA
Révision datée du 12 novembre 2018 à 12:07 par Mdelobel (discussion | contributions) (Etapes de realisation des conteneurs (a la main))

TP Systeme Reseau

Vous trouverez sur cette page Wiki tous les travaux relatifs au cours de Systeme Reseau réalisés par Delobelle Matthieu

TP Conteneur Reseau

Etapes de realisation des conteneurs (a la main)

Creation d'un fichier (utilisé en tant que partition) de 10240 bloc de 1024k octets (Soit un fichier de 10Go)

dd if=/dev/zero of=disc.img bs=1024k count=10240

Creation d'un systeme d'un systeme de fichier linux au sein du fichier precedemment créé

mkfs disc.img

Creation des dossiers temporaires dans lequel le systeme sera monté

mkdir /tmp/fs1
mkdir /tmp/fs2
mkdir /tmp/fs3

Montage du systeme de fichier dans fs1

mount -o loop disc.img /tmp/fs1

La commande df -Ath permet d'avoir la liste des partitions montés par le systeme

Df ath.png

On voit bien que le /tmp/fs0 propose un emplacement memoire de 10Go

Bootstrap d'un systeme Debian au sein de la partition montée

debootstrap --include=apache2,vim,nano  stable /tmp/fs1

Preparation du montage du systeme

echo "proc /proc proc defaults 0 0" >> rootfs/etc/fstab

Unmount de la partition

umount /tmp/fs1

(On remarque bien que la partition n'est plus montée via df -h)

Duplication de l'image deux fois, puis montage des trois systemes de fichier

cp disc.img disc2.img
cp disc.img disc3.img
mount -o loop disc.img /tmp/fs1
mount -o loop disc2.img /tmp/fs2
mount -o loop disc3.img /tmp/fs3

On verifie le resultat avec un autre df -h

Dfh2.png

Demarrage des conteneurs en chargeant les systemes de fichier.

unshare -n -u -p -f -m chroot /tmp/fs1 /bin/sh -c "mount /proc ; /bin/bash";
# La commande unshare permet de couper la liaison d'un processus avec les differentes tables de nom
# -n : table de nom reseau
# -u : table des hostnames

Si la creation du conteneur fonctionne bien : on ne peut pas revenir dans le dossier parent en faisant la commande 'cd ..', et de plus la commande ps ne retourne le resultat suivant :

Ps.png

On voit bien qu'il n'y a pas d'autre processus lancé, on se trouve donc bien dans le conteneur

En lancant donc les trois conteneurs, chacun est alors independant de l'autre, et l'on peut lancer la commande suivante pour voir "l'existence" des trois conteneurs

ps aux | grep unshare

Psaux.png