Lorsqu’ils parlent de l’avenir de la technologie, de nombreux techniciens chevronnés savent que la virtualisation et la conteneurisation sont tout à fait cette voie. Ils permettent une plus grande sécurité des applications et des services, et ils sont facilement gérés via d’autres services qui permettent des instantanés, des modèles et une plus grande personnalisation que ce que vous obtenez avec le modèle un serveur par application. Cependant, la manière dont vous devez commencer avec la virtualisation et la conteneurisation n’est pas toujours tout à fait claire. Nous avons déjà couvert plusieurs fois la virtualisation sur Linux, Windows et macOS, mais la conteneurisation a tendance à être un peu différente. Nous vous proposons dans cet article un guide du débutant sur Podman sous Linux, un excellent outil de conteneurisation.
Que sont les conteneurs ?
Les conteneurs sont essentiellement de petites machines virtuelles, mais uniquement pour les applications. Ils utilisent en grande partie les mêmes concepts et offrent une grande partie des mêmes fonctionnalités de sécurité et de facilité d’utilisation, mais ils sont beaucoup plus petits et permettent une imagerie et une distribution faciles d’une application. C’est en grande partie sur quoi sont basés les Flatpaks et les Snaps. Vous pouvez commencer à voir les parallèles : un programme, plusieurs applications qui s’exécutent dans des environnements isolés.
Qu’est-ce que Podman ?
Beaucoup d’entre nous ont entendu parler de Docker, l’OG des moteurs de conteneurs. Podman est un moteur de conteneur similaire qui utilise une structure très similaire à Docker avec quelques différences clés.
L’un est que Podman est sans démon, alors que Docker s’appuie sur un démon. Cela signifie que les conteneurs Podman peuvent fonctionner sans autorisations au niveau racine, ce qui permet plus de sécurité et de flexibilité. Un conteneur exécuté au niveau de l’utilisateur signifie que les utilisateurs ne peuvent voir que leurs conteneurs et personne d’autre. Podman utilise moins de ressources système en raison de son architecture plus simple, ce qui rend l’expérience plus agréable.
L’architecture sans démon conduit à ce qu’on appelle des conteneurs sans racine. C’est un concept qui s’appuie sur la différence précédente mais se concentre sur la sécurité. Si un attaquant compromet votre conteneur et parvient à s’échapper pour une raison quelconque, il ne dispose que des autorisations utilisateur de base plutôt que des autorisations root. Cela nécessite une configuration supplémentaire pour commencer, et il y a quelques lacunes pour le moment, mais c’est quelque chose qui vaut le détour.
Installation de Podman
Pour la plupart des distributions, Podman se trouve dans les référentiels principaux, ce qui en fait une commande d’installation simple :
# Debian/Ubuntu sudo apt install podman # Fedora/CentOS/Redhat sudo dnf install podman # Arch Linux sudo pacman -S podman # OpenSUSE sudo zypper install podman # Gentoo sudo emerge app-emulation/podman
Utiliser Podman
La syntaxe de la commande pour démarrer un conteneur Podman peut être un peu déroutante, mais une fois que vous aurez commencé à vous y habituer, vous commencerez à reconnaître les modèles. Il existe un exemple de conteneur du projet que vous pouvez exécuter en entrant cette commande dans le terminal :
podman run -dt -p 8080:8080/tcp -e HTTPD_VAR_RUN=/run/httpd -e HTTPD_MAIN_CONF_D_PATH=/etc/httpd/conf.d -e HTTPD_MAIN_CONF_PATH=/etc/httpd/conf -e HTTPD_CONTAINER_SCRIPTS_PATH=/usr/share/container-scripts/httpd/ registry.fedoraproject.org/f29/httpd /usr/bin/run-httpd
Cela extraira quelques images du registre répertorié, et une fois cela fait, vous obtiendrez un long numéro. Vous finirez par voir cela plus tard lorsque vous vérifierez les conteneurs en cours d’exécution.
Pour vérifier l’exécution des conteneurs Podman, saisissez la commande suivante :
podman ps
Vous verrez le conteneur que vous avez démarré plus tôt. Cela confirme qu’il fonctionne. Cependant, si vous souhaitez consulter spécifiquement la page Web qu’Apache exécute, vous exécuterez la commande suivante :
curl http://0.0.0.0:8080
Remplacement 0.0.0.0
quelle que soit l’adresse IP affichée lorsque vous exécutez le podman ps
commander. Vous devriez obtenir un tas de HTML brouillé, mais si vous regardez en haut, vous remarquerez la syntaxe d’un titre en HTML et saurez qu’il fonctionne.
<title>Test Page for the Apache HTTP Server on Fedora</title>
Images de Podman
Ce qui est bien avec Podman, c’est l’utilisation d’images. Vous pouvez rechercher d’autres images comme la httpd
ou d’autres programmes que vous souhaitez exécuter.
podman search CONTAINERNAME
j’ai cherché vncserver
, et c’est ce que j’ai. Vous pouvez voir qu’il existe de nombreuses options, et cela dépendra simplement de vos préférences personnelles.
Pour récupérer l’une de ces images, exécutez le podman pull
commander.
podman pull CONTAINERNAME
Il est recommandé d’extraire l’URL complète pour que le registre de conteneurs soit parfaitement précis. Par exemple, la commande que j’exécute est :
podman pull docker.io/michaelaboeckler/vncserver
plutôt que de simplement courir podman pull vncserver
car il peut y avoir des images que je ne veux pas qui seront choisies à la place de celle que je veux.
Vous pouvez également vérifier vos images avec cette commande :
podman images
Et arrêtez les conteneurs avec cette commande :
podman stop -l
Le -l
flag signifie qu’il arrêtera le dernier conteneur exécuté, mais vous pouvez également utiliser le -a
drapeau pour arrêter tous les conteneurs.
Vous avez peut-être remarqué que Podman peut également consulter docker.io pour les images de conteneurs. C’est parce que les commandes Podman et les commandes Docker sont essentiellement les mêmes – à tel point qu’il est parfois recommandé d’alias le docker
commande à podman
comme ça:
alias docker='podman'
Cela signifie que chaque fois que vous entrez docker
, votre machine exécutera le podman
commande quand même.
Podman sans racines
Pour configurer votre système pour les conteneurs sans racine, il y a pas mal de configuration à faire, mais il y a une excellente documentation sur leur Page Github.
J’espère que vous avez apprécié cette introduction à Podman, un excellent petit outil qui vous permettra d’exécuter des conteneurs sans démon et sans racine pour garder votre système léger, ordonné et sécurisé. Si vous l’avez fait, assurez-vous de consulter certains de nos autres contenus de conteneurs, tels que nos guides sur l’exécution d’Ubuntu dans un conteneur sous ChromeOS, la copie des conteneurs Docker sur un autre hôte et la limitation des ressources du conteneur Docker.