Aller au contenu

Utiliser les containers

·
redhat docker kubernetes
Jérémy Norgol
Auteur
Jérémy Norgol
Consultant ingénieur Linux Devops
RH134 - Cet article fait partie d'une série.
Partie 37: Cet article

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 :

  1. 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).

  2. Consistance : Pas de contraintes liés aux environnements de développement non cohérents, réduisant ainsi les erreurs dues à des configurations différentes.

  3. Isolation : Les containers isolent les applications et leurs dépendances. Améliore la sécurité.

  4. 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.

  5. Scalabilité : Option de mise à l’échelle en fonction des besoins possible.

  6. 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.

  7. 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-logo 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-logo 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

RH134 - Cet article fait partie d'une série.
Partie 37: Cet article

Articles connexes

Installer un cluster Kubernetes sur des VMs CentOS 7
Zwindler's Reflection
kubernetes redhat lien externe
Firewall
redhat sécurité
Boot Process
redhat