Introduction
Bien démarrer avec Podman vous présente un moteur de conteneurs moderne et léger, conçu comme une alternative sécurisée et sans root à Docker. Contrairement à Docker, Podman élimine le besoin d'un démon central, offrant une sécurité et une flexibilité accrues aux développeurs et aux administrateurs système qui gèrent des conteneurs. Son architecture sans root est particulièrement attrayante pour les environnements où la minimisation de l'élévation de privilèges est une priorité.
Dans ce guide, nous aborderons les bases de l'installation et de l'utilisation de Podman sur Ubuntu Server 22.04. Nous traiterons également un problème courant lié au téléchargement d'images de conteneurs à l'aide de noms courts (par exemple,nginx) et fournirons une solution claire pour vous aider à bien démarrer avec Podman.

Articles précédents :
01. Introduction à Ubuntu Server – SysOSX: AI & Cloud
02. Comment configurer votre premier serveur Ubuntu : guide du débutant – SysOSX: AI & Cloud
03.Maîtriser la ligne de commande Linux pour Ubuntu Server – SysOSX: AI & Cloud
05. Notions de base sur les réseaux pour Ubuntu Server : guide complet – SysOSX: AI & Cloud
06. Installation et gestion de logiciels sur Ubuntu Server : guide complet – SysOSX: AI & Cloud
07.Application de correctifs et mise à jour d’Ubuntu Server : guide complet – SysOSX: AI & Cloud
09. Audit et journalisation d’Ubuntu Server
10. Outils de surveillance système pour Ubuntu Server : guide complet – SysOSX: AI & Cloud
11. Journalisation centralisée pour Ubuntu Server : un guide indispensable – SysOSX: AI & Cloud
12. Audit et conformité pour Ubuntu Server : pratiques recommandées – SysOSX: AI & Cloud
14. Héberger plusieurs sites web sur un seul serveur Ubuntu : conseils utiles – SysOSX: AI & Cloud
15. Gestion du stockage et des disques sur Ubuntu Server : guide simple – SysOSX: AI & Cloud
18. Comment configurer et utiliser LVM sur Ubuntu Server : guide complet – SysOSX: AI & Cloud
21. Bien démarrer avec LXD : installer des conteneurs facilement + aide-mémoire – SysOSX: AI & Cloud
Table des matières
Qu'est-ce que Podman, et pourquoi l'utiliser ?
Podman est un moteur de conteneurs conçu pour créer, exécuter et gérer des conteneurs, en mettant l'accent sur la sécurité et la flexibilité. Voici pourquoi Podman gagne en popularité :
- Architecture sans démon : Podman ne repose pas sur un service en arrière-plan (contrairement au modèle basé sur un démon de Docker), ce qui réduit les surfaces d'attaque et améliore la sécurité.
- Conteneurs sans root : Exécutez des conteneurs en tant qu'utilisateur non root pour renforcer encore la sécurité.
- Commandes compatibles avec Docker : L'interface CLI de Podman est conçue pour être compatible avec Docker, ce qui vous permet d'utiliser des commandes comme
podman pulloupodman runde manière transparente. - Intégration avec systemd : Gérez facilement les conteneurs en tant que services système.
Étape 1 : Installer Podman sur Ubuntu Server 22.04
1.1 Mettre à jour votre système
Avant d'installer Podman, assurez-vous que votre système est à jour pour éviter les problèmes de compatibilité :
sudo apt update && sudo apt upgrade -y
1.2 Installer Podman
Podman est inclus dans les dépôts par défaut d'Ubuntu, vous pouvez donc l'installer directement avec le gestionnaire de paquets apt :
sudo apt install podman -y
1.3 Vérifier l'installation
Après l'installation, vérifiez la version installée de Podman pour vous assurer qu'elle est prête à l'emploi :
podman --version
Exemple de sortie :
podman version 3.4.4
Étape 2 : Exécuter votre premier conteneur Podman
2.1 Télécharger une image de conteneur
Podman utilise des images de conteneurs pour exécuter des applications. Commencez par télécharger l'image légère d'Alpine Linux :
podman pull alpine
2.2 Exécuter un conteneur
Exécutez un conteneur avec l'image Alpine :
podman run --rm -it alpine sh
Cette commande démarre un shell interactif dans le conteneur Alpine. Vous pouvez tester des commandes de base, telles que :
echo "Hello from Podman!"
2.3 Quitter le conteneur
Pour quitter le conteneur, tapez :
exit
Étape 3 : Comprendre la résolution des noms courts de Podman
Le problème des noms courts
Lors du téléchargement d'images de conteneurs à l'aide de noms courts (par exemple,nginx), Podman doit savoir dans quel registre rechercher l'image. Sans configuration appropriée, vous risquez de rencontrer l'erreur suivante :
Error: short-name "nginx" did not resolve to an alias and no unqualified-search registries are defined in "/etc/containers/registries.conf"
Pourquoi cette erreur se produit-elle ?
Podman nécessite un fichier de configuration (registries.conf) pour définir les registres de conteneurs dans lesquels rechercher les images. Si ce fichier est manquant ou mal configuré, Podman ne peut pas résoudre les noms courts comme nginx.
Étape 4 : Corriger l'erreur de résolution des noms courts
4.1 Le fichier registries.conf : le localiser ou le créer
Le fichier registries.conf se trouve généralement à l’emplacement /etc/containers/registries.conf. Vérifiez si le fichier existe :
ls /etc/containers/registries.conf
S'il n'existe pas, créez-le :
sudo nano /etc/containers/registries.conf
4.2 Ajouter la configuration de registre par défaut
Ajoutez la configuration suivante au fichier :
[registries.search]
registries = ['docker.io', 'quay.io']
docker.io: Fait référence à Docker Hub, le registre de conteneurs le plus couramment utilisé.quay.io: Un autre registre de conteneurs populaire.
Enregistrez le fichier et quittez (Ctrl+O, puis Ctrl+X, si vous utilisez nano).
4.3 Réessayer la commande de téléchargement
Une fois la configuration du registre en place, essayez de télécharger à nouveau l'image nginx à nouveau :
podman pull nginx
Podman devrait maintenant résoudre le nom court nginx en docker.io/library/nginx et télécharger l’image avec succès.
Étape 5 : Exécuter des conteneurs en tant qu'utilisateur non root
L'une des fonctionnalités les plus remarquables de Podman est sa capacité à exécuter des conteneurs sans nécessiter de privilèges root. Voici comment le configurer :
5.1 Passer à un utilisateur non root
Connectez-vous en tant qu'utilisateur ordinaire (par exemple,uadmin) :
su - uadmin
Vérifiez que Podman fonctionne pour l'utilisateur non root :
podman info
5.2 Corriger les problèmes d'autorisations pour les utilisateurs non root
Si vous rencontrez une erreur permission denied lors de l'exécution de Podman en tant qu'utilisateur non root, cela est probablement dû à une propriété incorrecte du répertoire personnel de l'utilisateur.
Vérifiez la propriété du répertoire personnel :
ls -ld /home/uadmin
Si le répertoire appartient à root, corrigez-le :
sudo chown -R uadmin:uadmin /home/uadmin
Créez manuellement le répertoire .local :
mkdir -p /home/uadmin/.local/share/containers
sudo chown -R uadmin:uadmin /home/uadmin/.local
Testez à nouveau Podman :
podman info
Podman devrait maintenant fonctionner correctement en tant qu'utilisateur non root.
Étape 6 : Commandes Podman utiles pour les débutants
Voici quelques commandes Podman essentielles pour vous aider à démarrer :
- Répertorier les conteneurs en cours d'exécution :
podman ps
- Répertorier tous les conteneurs (y compris ceux arrêtés) :
podman ps -a
- Arrêter un conteneur en cours d'exécution :
podman stop <container-id>
- Supprimer un conteneur :
podman rm <container-id>
- Supprimer une image :
podman rmi <image-name>
Documentation de référence :
Bien démarrer avec Podman | Podman
Conclusion
Podman est un moteur de conteneurs sécurisé, léger et flexible, parfait pour Ubuntu Server 22.04. Dans ce guide, nous avons abordé :
- Installer Podman.
- Exécuter votre premier conteneur.
- Corriger l'erreur de résolution des noms courts.
- Exécuter des conteneurs en tant qu'utilisateur non root.
En suivant ces étapes, vous disposez désormais d'une base solide pour commencer à explorer Podman et à gérer efficacement les conteneurs. Avec ses capacités sans root et son interface CLI compatible avec Docker, Podman est un excellent outil pour les flux de travail de conteneurisation modernes.
Restez à l'écoute :
Dans le prochain article, nous parlerons de comment déployer Ubuntu Server sur des plateformes cloud , comme GCP, AWS et Azure.