Skip to content
Snippets Groups Projects
Verified Commit 9cfe63fe authored by iliya.saroukha's avatar iliya.saroukha :first_quarter_moon:
Browse files

feat: ex2 of lab7 done

parent 47b1ea4e
No related branches found
No related tags found
No related merge requests found
Pipeline #31981 passed
......@@ -40,3 +40,108 @@ et existant dans la couche basse est modifié ?
et existant dans la couche basse est supprimé ?
- Le modifications ne seront pas propagées dans la couche basse car celle-ci
est immutable.
## Exercice 2
### Ajout de l'image `fedora`
```bash
docker pull fedora:41
```
### Exécution du container
```bash
docker run --rm -it fedora:41 /bin/bash 
```
- Ajout d'un fichier à la racine
```bash
touch root_file
```
- Suppression de `/etc/issue`
```bash
rm /etc/issue
```
- Ajout d'une ligne à `/etc/passwd`
```bash
echo "Hello world" >> /etc/passwd
```
### Inspection du container
```bash
docker inspect <container_name>
```
- Combien de couches basses contient ce container et quelles sont leurs chemins
absolus dans le système de fichiers sur la machine hôte ?
```bash
docker inspect serene_banzai | jq '.[0].GraphDriver.Data'
```
Il semberait que le container contiennent 2 couches basses, leurs chemins absolu
dans la machine hôte sont délimité par un `:`
- /var/lib/docker/overlay2/c09fee9d46e25b792b708cf644e1fae6e93b69316cacf6d601050b6947c2e671-init/diff
- /var/lib/docker/overlay2/4760625ee9a5f5e1b9b35b91cc070433b30ba2a931a70b770dafc1b0153e3952/diff
- Quel est le chemin absolu de la couche container _writable_ ?
```bash
"UpperDir": "/var/lib/docker/overlay2/c09fee9d46e25b792b708cf644e1fae6e93b69316cacf6d601050b6947c2e671/diff"
```
- À l'aide de la commande `tree`, listez le contenu complet de la couche container
_writable_ :
```bash
sudo tree /var/lib/docker/overlay2/c09fee9d46e25b792b708cf644e1fae6e93b69316cacf6d601050b6947c2e671/diff
```
```bash
├── etc
│ ├── issue
│ └── passwd
└── root_file
```
- Sur la machine hôte, quel est le chemin absolu du répertoire correspondant
au _rootfs_ du container ?
```bash
docker inspect serene_banzai | jq '.[0].GraphDriver.Data.MergedDir'
```
- /var/lib/docker/overlay2/c09fee9d46e25b792b708cf644e1fae6e93b69316cacf6d601050b6947c2e671/merged
Déplacez-vous dans le répertoire correspondant au _rootfs_ du container, puis
créez le fichier `Hello_from_the_outside`.
```bash
sudo su
cd /var/lib/docker/overlay2/c09fee9d46e25b792b708cf644e1fae6e93b69316cacf6d601050b6947c2e671/merged
touch Hello_from_the_outside
```
- Suite à cette opération, qu'observez vous dans le container lorsque vous listez
le contenu du répertoire racine ?
- Quand on retourne inspecter les fichiers à la racine du container, le fichier
`Hello_from_the_outside` créé depuis la machine hôte, est bien dans le container.
- Est-ce qu'il possible de simplement utiliser la commande mount sur le serveur
pour obtenir les mêmes informations (à la place d'utiliser la commande
`docker inspect`) ? Justifiez votre démarche.
- Je suppose que non car la commande `mount` en elle-même ne fourni pas
d'informations sur le métadonnées d'un container et donc ne permet pas de
de connaître le chemin exact vers les diverses couches du container.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment