Introduction #
Un container sous Red Hat est une technologie de virtualisation légère qui permet d’exécuter des applications et leurs dépendances dans un environnement isolé. Utilisant des outils comme Docker ou Podman, les containers encapsulent le code, les bibliothèques et les fichiers de configuration nécessaires pour que les applications fonctionnent de manière cohérente sur différents environnements. Red Hat propose OpenShift, une plateforme Kubernetes, pour la gestion et l’orchestration des containers, facilitant ainsi le déploiement, la mise à l’échelle et la gestion des applications containerisées.
Les containers offrent plusieurs avantages aux développeurs dans le milieu IT :
-
Portabilité : Les containers encapsulent tout ce dont une application a besoin pour fonctionner, ce qui permet aux développeurs de s’assurer que l’application fonctionnera de la même manière sur différents environnements (local, test, production).
-
Consistance : Pas de contraintes liés aux environnements de développement non cohérents, réduisant ainsi les erreurs dues à des configurations différentes.
-
Isolation : Les containers isolent les applications et leurs dépendances. Améliore la sécurité.
-
Rapidité de Déploiement : Les containers peuvent être démarrés et arrêtés rapidement, ce qui permet des cycles de développement et de déploiement plus rapides.
-
Scalabilité : Option de mise à l’échelle en fonction des besoins possible.
-
Continuous Integration/Continuous Deployment (CI/CD) : Une solution de choix dans un contexte agile / devops pour des déploiements continu en permettant des tests automatisés et des déploiements fréquents.
-
Efficacité des Ressources : Les containers partagent le même noyau du système d’exploitation, ce qui les rend plus légers que les machines virtuelles.
Outils de conteuneurisation #
- Docker
- Developed by: Solomon Hykes
- Released on: 20 Mars 2013
Docker est un logiciel open-source qui automatise le déploiement d’applications dans des containers
Non supporté sur la version RHEL 8
- Podman
- Developed by: Red Hat
- Released on: Août 2018
Podman est un outil open-source de gestion de containers qui permet de créer, exécuter et gérer des containers sans nécessiter de démon en arrière-plan, offrant une alternative sans root à Docker.
Les outils by Red Hat #
Red Hat propose une suite d’outils en ligne de commande permettant de gérer des containers sans nécessiter un moteur de containers complet comme Docker. Ces outils incluent :
-
podman : Un outil pour gérer directement les pods et les images de containers. Il permet des opérations telles que démarrer, arrêter, exécuter des containers, lister les processus en cours, attacher à des containers existants, etc. Podman se distingue par sa capacité à fonctionner sans démon (daemon), ce qui signifie qu’il n’y a pas de processus en arrière-plan gérant les containers, offrant ainsi une meilleure sécurité et intégration avec les systèmes Linux.
-
buildah : Utilisé pour créer, pousser (téléverser) et signer des images de containers. Buildah offre une grande flexibilité dans la création d’images, permettant de construire des containers à partir de zéro sans nécessiter de Dockerfile. Cela permet une gestion plus granulaire des couches et des processus de construction des images.
-
skopeo : Un outil polyvalent pour copier, inspecter, supprimer et signer des images de containers. Skopeo permet de manipuler les images de containers sans avoir à les exécuter, ce qui est utile pour gérer les images dans des registres distants et pour vérifier leur intégrité et sécurité.
-
runc : Un runtime (environnement d’exécution) de container conforme à la spécification OCI (Open Container Initiative). Runc est utilisé par podman et buildah pour exécuter et créer des containers. Il est largement utilisé comme base pour d’autres outils de containers, offrant un standard d’exécution cohérent et fiable.
-
crun : Un autre runtime optionnel, plus léger et performant que runc, particulièrement optimisé pour les containers sans privilèges (rootless). Crun offre une meilleure flexibilité, contrôle et sécurité pour exécuter des containers sans nécessiter de privilèges administratifs.
Build, Run and Manage #
Installation de votre outil de conteuneurisation
Installation #
yum install podman -y
yum install docker -y
Gestion d’image #
Recherche d’image
podman search httpd
Liste d’image en local
podman images
Téléchargement d’une image
podman pull docker.io/library/httpd
Gestion de containers #
Liste des containers
podman ps
Démarrer un container
podman run -dt -p 8080:80/tcp docker.io/library/httpd
(d=detach, t=get the tty shell, p=port)
Visualisation des logs
podman logs -l
Stop containers
podman stop <id|name>
Gestion des containers avec systemd #
Première étape: podman generate systemd --new --files --name httpd
Copie du répertoire systemd: cp /root/container-httpd.service /etc/systemd/system
Activation / Démarrage du service: systemctl enable|start container-httpd.service