Aller au contenu principal
Partie IIPrésentation

Sous le capot des conteneurs

La partie I a utilisé les conteneurs comme des boîtes noires qui fonctionnent. Celle-ci les ouvre. On y fabrique un conteneur sans Docker, avec les commandes du noyau ; on le limite en mémoire jusqu'à ce que le noyau le tue ; on empile des systèmes de fichiers à la main ; on lance une image avec runc, le programme que Docker, containerd et Kubernetes appellent tous au bout du compte. Puis on remonte vers la pratique : ce qui rend un conteneur sûr, ce qui fait une bonne image de production, et comment savoir ce que contient une image avant de la faire tourner.

C'est la partie la plus exigeante du cours, et c'est elle qui fait la différence le jour où un conteneur est tué sans raison apparente, refuse de démarrer ou se révèle vulnérable. Chaque notion y est manipulée pour de vrai, dans un laboratoire préparé au chapitre 8.

ChapitreCe que vous y apprenez
8. Les namespaces Linuxles huit namespaces, nsenter, unshare, un conteneur fait à la main
9. Les cgroupslimiter la mémoire et le processeur, provoquer un OOM kill
10. Les systèmes de fichiers en couchesoverlayfs, la copie à l'écriture, les couches d'une image
11. Les runtimesla spécification OCI, runc, containerd, les shims
12. La sécurité d'un conteneurcapabilities, seccomp, AppArmor, utilisateurs non root, rootless
13. Des images de productionconstructions en plusieurs étapes, images minimales, multi-architecture
14. La chaîne d'approvisionnementanalyse de vulnérabilités, SBOM, signature des images
Défi IIréduire l'image de Colis sous un seuil de taille et de vulnérabilités

Il vous faut Docker avec buildx et, pour les chapitres 11 et 12, le cluster minikube du chapitre 0.2. Les outils du noyau et des runtimes (unshare, runc, crun, skopeo, umoci) sont fournis par l'image du laboratoire, construite au chapitre 8 ; le chapitre 14 installe Trivy et cosign.