38 lines
1.6 KiB
Markdown
38 lines
1.6 KiB
Markdown
\newpage
|
|
|
|
https://ops.tips/blog/run-docker-with-forked-runc/
|
|
|
|
`runc`
|
|
======
|
|
|
|
`runc` est le programme qui est responsable de la création effective du conteneur : c'est lui qui va mettre en place les *namespaces*, les *capabilities*, les points de montages ou volumes, ... Attention, son rôle reste limité à la mise en place de l'environnement conteneurisé, ce n'est pas lui qui télécharge l'image, ni fait l'assemblage des couches de système de fichiers, entre autres.
|
|
|
|
Si vous n'avez pas eu le temps de terminer l'exercice précédent, vous pouvez utiliser `docker export | tar -C rootfs xv`.
|
|
|
|
On va essayer de lancer un shell `alpine` avec un volume dans notre home :)
|
|
|
|
D'abord on extraie l'image avec le script précédent, puis on crée le fichier de conf qui va bien.
|
|
|
|
Aujourd'hui, la création de conteneur est faite avec `runc`, mais il est parfaitement possible d'utiliser n'importe quel autre programme, à la place de `runc`, à partir du moment où il expose la même interface à Docker et qu'il accepte les bundle OCI.
|
|
|
|
https://github.com/opencontainers/runtime-spec/blob/master/config.md
|
|
|
|
https://hackernoon.com/docker-containerd-standalone-runtimes-heres-what-you-should-know-b834ef155426
|
|
|
|
|
|
## Exercice
|
|
|
|
Réaliser un `config.json` qui permette de lancer le conteneur `nemunaire/fic-admin`.
|
|
|
|
|
|
## Exercice
|
|
|
|
Serez-vous capable d'écrire un fichier `config.json` permettant d'obtenir le
|
|
même résultat que votre projet de moulette ?
|
|
|
|
* CGroups : 1GB RAM, 100 PID, ...
|
|
* strict minimum de capabilities ;
|
|
* volume étudiant pour correction ;
|
|
* carte réseau `veth` ;
|
|
* ...
|