Podman (le POD MANager) est un outil permettant de gérer des conteneurs et des images, des volumes montés dans ces conteneurs et des pods constitués de groupes de conteneurs. Podman exécute des conteneurs sous Linux, mais peut également être utilisé sur les systèmes Mac et Windows à l'aide d'une machine virtuelle gérée par Podman. Podman est basé sur libpod, une bibliothèque de gestion du cycle de vie des conteneurs également contenue dans ce référentiel. La bibliothèque libpod fournit des API pour gérer les conteneurs, les pods, les images de conteneurs et les volumes.
Podman publie une nouvelle version majeure ou mineure 4 fois par an, au cours de la deuxième semaine de février, mai, août et novembre. Les versions de correctifs sont plus fréquentes et peuvent survenir à tout moment pour fournir des corrections de bogues aux utilisateurs. Toutes les versions sont signées PGP. Les clés publiques des membres de l’équipe autorisées à effectuer des versions se trouvent ici.
Intégration continue :
GoDoc :
Téléchargements
À un niveau élevé, la portée de Podman et de libpod est la suivante :
Prise en charge de plusieurs formats d'image de conteneur, y compris les images OCI et Docker.
Gestion complète de ces images, y compris l'extraction à partir de diverses sources (y compris la confiance et la vérification), la création (construite via Containerfile ou Dockerfile ou validée à partir d'un conteneur) et la transmission vers les registres et autres backends de stockage.
Gestion complète du cycle de vie des conteneurs, y compris la création (à partir d'une image et d'un système de fichiers racine éclaté), l'exécution, le point de contrôle et la restauration (via CRIU) et la suppression.
Gestion complète de la mise en réseau de conteneurs, à l'aide de Netavark.
Prise en charge des pods, groupes de conteneurs qui partagent des ressources et sont gérés ensemble.
Prise en charge de l'exécution de conteneurs et de pods sans privilèges root ou autres privilèges élevés.
Isolation des ressources des conteneurs et des pods.
Prise en charge d'une interface CLI compatible Docker, qui peut à la fois exécuter des conteneurs localement et sur des systèmes distants.
Aucun démon de gestion, pour une sécurité améliorée et une utilisation réduite des ressources au repos.
Prise en charge d'une API REST fournissant à la fois une interface compatible Docker et une interface améliorée exposant les fonctionnalités avancées de Podman.
Prise en charge de l'exécution sur Windows et Mac via des machines virtuelles exécutées par podman machine
.
Améliorations supplémentaires de podman machine
pour mieux prendre en charge Podman Desktop et d'autres cas d'utilisation des développeurs.
Prise en charge de conmon-rs, qui améliorera la journalisation des conteneurs.
Prise en charge de l'API BuildKit.
Améliorations des performances et de la stabilité.
Réductions de la taille du binaire Podman.
Si vous pensez avoir identifié un problème de sécurité dans le projet, veuillez NE PAS signaler le problème publiquement via le système de suivi des problèmes GitHub, la liste de diffusion ou IRC. Au lieu de cela, envoyez un e-mail avec autant de détails que possible à [email protected]
. Il s'agit d'une liste de diffusion privée destinée aux principaux responsables.
Pour les questions et discussions générales, veuillez utiliser les canaux de Podman.
Pour les discussions sur les problèmes/bugs et fonctionnalités, vous pouvez utiliser le système de suivi des problèmes et des PR de GitHub.
Il existe également une liste de diffusion sur lists.podman.io
. Vous pouvez vous abonner en envoyant un message à [email protected]
avec le sujet subscribe
.
Podman peut être facilement exécuté en tant qu'utilisateur normal, sans nécessiter de binaire setuid. Lorsqu'ils sont exécutés sans root, les conteneurs Podman utilisent les espaces de noms utilisateur pour définir la racine du conteneur sur l'utilisateur exécutant Podman. Rootless Podman exécute des conteneurs verrouillés sans privilèges que l'utilisateur qui exécute le conteneur ne possède pas. Certaines de ces restrictions peuvent être levées (via --privileged
, par exemple), mais les conteneurs sans racine n'auront jamais plus de privilèges que l'utilisateur qui les a lancés. Si vous exécutez Podman en tant qu'utilisateur et que vous montez dans /etc/passwd
depuis l'hôte, vous ne pourrez toujours pas le modifier, car votre utilisateur n'a pas l'autorisation de le faire.
Presque toutes les fonctionnalités normales de Podman sont disponibles, même s'il existe quelques lacunes. Toute version récente de Podman devrait pouvoir fonctionner sans racine sans aucune configuration supplémentaire, bien que votre système d'exploitation puisse nécessiter une configuration supplémentaire détaillée dans le guide d'installation.
Une petite configuration par un administrateur est requise avant de pouvoir utiliser Podman sans racine, la configuration nécessaire est documentée ici.
Podman Desktop fournit un environnement de développement local pour Podman et Kubernetes sur les machines Linux, Windows et Mac. Il s'agit d'une interface utilisateur de bureau complète pour Podman qui utilise le backend podman machine
sur les systèmes d'exploitation non Linux pour exécuter des conteneurs. Il prend en charge la gestion complète du cycle de vie des conteneurs (création, extraction et transmission d'images, création et gestion de conteneurs, création et gestion de pods et utilisation de Kubernetes YAML). Le projet se développe sur GitHub et les contributions sont les bienvenues.
Signature spécialisée et transfert d'images vers divers backends de stockage. Voir Skopeo pour ces tâches.
Prise en charge de l'interface Kubernetes CRI pour la gestion des conteneurs. Le démon CRI-O est spécialisé dans ce domaine.
Podman utilise des projets OCI et les meilleures bibliothèques pour différents aspects :
Runtime : nous utilisons les outils d'exécution OCI pour générer des configurations d'exécution OCI qui peuvent être utilisées avec n'importe quel environnement d'exécution compatible OCI, comme crun et runc.
Images : La gestion des images utilise la bibliothèque conteneurs/images.
Stockage : le stockage des conteneurs et des images est géré par conteneurs/stockage.
Mise en réseau : prise en charge de la mise en réseau grâce à l'utilisation de Netavark et Aardvark. La mise en réseau sans racine est gérée via pasta ou slirp4netns.
Builds : les builds sont pris en charge via Buildah.
Conmon : Conmon est un outil de surveillance des environnements d'exécution OCI, utilisé à la fois par Podman et CRI-O.
Seccomp : une politique Seccomp unifiée pour Podman, Buildah et CRI-O.
Pour les blogs, les annonces de versions et bien plus encore, veuillez consulter le site Web podman.io !
Notes d'installation Informations sur la façon d'installer Podman dans votre environnement.
Prise en charge des hooks OCI Informations sur la façon dont Podman configure les hooks OCI à exécuter lors du lancement d'un conteneur.
Documentation de l'API Podman sur l'API REST Podman.
Commandes Podman Une liste des commandes Podman avec des liens vers leurs pages de manuel et, dans de nombreux cas, des vidéos montrant les commandes utilisées.
Images de conteneurs Podman Informations sur les images de conteneurs Podman trouvées sur quay.io.
Guide de dépannage de Podman Une liste de problèmes courants et de solutions pour Podman.
Transfert d'utilisation de Podman Informations utiles pour le transfert d'opérations et de développement en ce qui concerne l'infrastructure qui utilise Podman. Cette page comprend des tableaux présentant les commandes Docker et leurs commandes équivalentes Podman.
Tutoriels Tutoriels sur l'utilisation de Podman.
Client distant Un bref tutoriel sur l'utilisation du client distant Podman.
Installation de base et utilisation de Podman dans un environnement sans racine Un didacticiel montrant l'installation et la configuration nécessaires pour exécuter Podman sans racine.
Notes de version Notes de version pour les versions récentes de Podman.
Contribuer Informations sur la contribution à ce projet.
Buildah et Podman sont deux projets open source complémentaires disponibles sur la plupart des plates-formes Linux et les deux projets résident sur GitHub.com avec Buildah ici et Podman ici. Buildah et Podman sont tous deux des outils de ligne de commande qui fonctionnent sur les images et les conteneurs Open Container Initiative (OCI). Les deux projets se différencient par leur spécialisation.
Buildah est spécialisé dans la création d'images OCI. Les commandes de Buildah répliquent toutes les commandes trouvées dans un Dockerfile. Cela permet de créer des images avec et sans Dockerfiles sans nécessiter de privilèges root. L'objectif ultime de Buildah est de fournir une interface coreutils de niveau inférieur pour créer des images. La flexibilité de créer des images sans Dockerfiles permet l'intégration d'autres langages de script dans le processus de construction. Buildah suit un modèle fork-exec simple et ne s'exécute pas comme un démon, mais il est basé sur une API complète dans Golang, qui peut être vendue dans d'autres outils.
Podman est spécialisé dans toutes les commandes et fonctions qui vous aident à conserver et à modifier les images OCI, telles que l'extraction et le marquage. Il vous permet également de créer, d'exécuter et de gérer les conteneurs créés à partir de ces images. Pour créer des images de conteneurs via Dockerfiles, Podman utilise l'API golang de Buildah et peut être installé indépendamment de Buildah.
Une différence majeure entre Podman et Buildah réside dans leur concept de conteneur. Podman permet aux utilisateurs de créer des « conteneurs traditionnels » dont l'objectif est d'avoir une longue durée de vie. Alors que les conteneurs Buildah sont en réalité simplement créés pour permettre au contenu d'être ajouté à l'image du conteneur. Une façon simple d'y penser est que la commande buildah run
émule la commande RUN dans un Dockerfile tandis que la commande podman run
émule la commande docker run
en fonctionnalité. Pour cette raison et leurs différences de stockage sous-jacentes, vous ne pouvez pas voir les conteneurs Podman depuis Buildah ou vice versa.
En bref, Buildah est un moyen efficace de créer des images OCI tandis que Podman vous permet de gérer et de maintenir ces images et conteneurs dans un environnement de production à l'aide des commandes cli de conteneur familières. Pour plus de détails, consultez le Guide des outils de conteneur.
$ podman run quay.io/podman/hello Trying to pull quay.io/podman/hello:latest... Getting image source signatures Copying blob a6b3126f3807 done Copying config 25c667d086 done Writing manifest to image destination Storing signatures !... Hello Podman World ...! .--"--. / - - / (O) (O) ~~~| -=(,Y,)=- | .---. /` |~~ ~/ o o ~~~~.----. ~~ | =(X)= |~ / (O (O) ~~~~~~~ ~| =(Y_)=- | ~~~~ ~~~| U |~~ Project: https://github.com/containers/podman Website: https://podman.io Documents: https://docs.podman.io Twitter: @Podman_io