GNU/Linux >> Tutoriels Linux >  >> Debian

Comment installer Podman sur Debian 11

Développé par RedHat, Podman est un moteur de conteneur sans démon gratuit et open source conçu pour remplacer le moteur d'exécution populaire Docker. Tout comme Docker, il facilite la création, l'exécution, le déploiement et le partage d'applications à l'aide d'images de conteneurs et de conteneurs OCI (Open Container Initiative). Podman utilise des espaces de noms utilisateur et réseau et, par rapport à Docker, Podman est considéré comme plus isolé et sécurisé. La plupart des commandes de Docker fonctionneront dans Podman. et donc si vous êtes familiarisé avec l'exécution des commandes Docker, l'utilisation de podman sera un jeu d'enfant.

Dans ce guide, nous apprenons à installer podman sur Debian 11 Bulle.

Installer Podman sur Debian 11

Les packages, bibliothèques et dépendances podman sont déjà hébergés sur les dépôts Debian officiels. Par conséquent, vous pouvez facilement installer podman à l'aide du gestionnaire de packages APT.

Tout d'abord, mettez à jour les listes de packages :

$ sudo apt update

Ensuite, installez le moteur de conteneur podman comme suit :

$ sudo apt install podman

Lorsque vous êtes invité à continuer, tapez 'Y' et appuyez sur ENTER.

Pour vérifier la version de Podman installée, exécutez :

$ podman --version

Pour recueillir plus de détails sur le moteur de conteneur podman, exécutez la commande :

$ sudo podman info

Vous devriez voir une multitude de résultats affichant des détails complexes tels que ce que nous avons ci-dessous.

Configurer les registres Podman

Le fichier de registre registry.conf est un fichier de configuration qui spécifie les registres de conteneurs à utiliser chaque fois que vous souhaitez envoyer ou extraire une image. Le chemin complet du fichier est /etc/containers/registries.conf . Il existe différents registres de conteneurs, notamment Docker Hub, Quay.io, RedHat et bien d'autres.

Vous pouvez afficher le fichier à l'aide de votre éditeur de texte, comme indiqué

# sudo /etc/containers/registries.conf

Dans Docker, le seul registre de conteneurs est Docker Hub. Podman offre aux utilisateurs plus de liberté pour rechercher et extraire des images de n'importe quel registre. Vous pouvez définir la liste des registres de conteneurs en ajoutant la ligne suivante.

unqualified-search-registries = [ 'registry.access.redhat.com', 'registry.redhat.io', 'docker.io']

Lors de l'exécution de la podman search ou podman pull commande, podman contactera ces registres en commençant par le premier dans cet ordre. Enregistrez les modifications et quittez le fichier.

Recherche d'images

Avant d'extraire des images de conteneurs, il est prudent de rechercher leur disponibilité dans différents registres.

Par exemple

$ sudo podman search nginx

La sortie vous présente une mine d'informations, notamment le nom du registre, le nom de l'image et une brève description.

Se connecter à un registre

Avant de commencer à extraire ou à pousser des images, vous devez vous connecter à un registre. Dans l'exemple ci-dessous, je me connecte à mon compte Redhat qui, en effet, me donne accès au registre.

$ sudo podman login registry.access.redhat.com

Pour vous déconnecter du registre, exécutez la commande :

$ sudo podman logout registry.access.redhat.com

Extraire une image

Pour extraire une image, utilisez la syntaxe :

$ sudo podman pull image_name

Par exemple, pour extraire les images de build officielles de Nginx, exécutez la commande :

$ sudo podman pull docker.io/library/nginx

Essayons de tirer une autre image. Nous allons extraire l'image officielle de MongoDB comme suit.

$ sudo podman pull docker.io/library/mongo

Liste d'une image

Pour lister toutes les images, lancez la commande.

$ sudo podman images

Créer un conteneur à partir d'une image

Maintenant que nos images résident sur le système Debian, nous pouvons lancer un conteneur en utilisant la syntaxe indiquée. L'option -d exécute le conteneur en arrière-plan et le --name l'option spécifie un nom personnalisé pour le conteneur

$ sudo podman run -d  --name container_name  image

Par exemple, pour lancer un conteneur en arrière-plan appelé webserv1 à partir de l'image Nginx, exécutez la commande :

$ sudo podman run  -d --name webserv1 docker.io/library/nginx

Vous pouvez lancer plusieurs conteneurs à partir de la même image. Lançons un autre conteneur appelé webserv2 à partir de la même image Nginx.

$ sudo podman run -d --name webserv2  docker.io/library/nginx

Répertorier les conteneurs

Dans cette section, nous examinerons différentes commandes que vous pouvez utiliser avec des conteneurs.

Pour vérifier les conteneurs en cours d'exécution, exécutez la commande :

$ sudo podman ps

La sortie est présentée dans des colonnes qui fournissent des informations telles que l'ID du conteneur, le nom de l'IMAGE, la commande exécutant le conteneur, la date de création et l'état.

Pour répertorier tous les conteneurs, y compris ceux qui ont quitté l'exécution :

$ sudo podman ps -a

Arrêter un conteneur

Pour arrêter un conteneur, utilisez la syntaxe

$ sudo podman stop CONTAINER_ID

OU

$ sudo podman stop container_name

Dans l'exemple ci-dessous, j'ai arrêté le premier conteneur répertorié à l'aide de son ID de conteneur

$ sudo podman stop 9daeaabdfdfc

Vous pouvez vérifier que le conteneur a été arrêté en utilisant le podman ps commande. Nous pouvons clairement voir qu'après avoir arrêté l'image, nous n'avons qu'une seule image en cours d'exécution.

Le podman ps -a La commande listera les deux conteneurs qui comprennent le conteneur qui vient d'être arrêté.

$ sudo podman ps -a

Démarrer un conteneur

Pour démarrer un conteneur, utilisez la syntaxe :

$ sudo podman start CONTAINER_ID

OU

$ sudo podman start container_name

Par exemple, pour démarrer webserv1, exécutez :

$ sudo podman start webserv1

Accéder au shell d'un conteneur

L'accès au shell d'un conteneur est mieux démontré avec un conteneur d'un système d'exploitation.

Ici, nous allons télécharger ou extraire une image Ubuntu :

$ sudo podman pull docker.io/library/ubuntu

À partir de l'image, nous allons créer ou lancer un conteneur et accéder au shell en utilisant le -it option.

$ sudo podman run --name ubuntu -it docker.io/library/ubuntu  /bin/bash
  • -i, –interactive Garde STDIN ouvert même s'il n'est pas connecté
  • -t, –tty Attribue un pseudo-TTY. La valeur par défaut est false

Vérifier les journaux d'un conteneur

Pour vérifier les logs d'un conteneur utilisez la syntaxe :

$ sudo podman logs container_name

Par exemple :

$ sudo podman logs webserv2

Afficher les statistiques du conteneur

Pour afficher les statistiques de tous les conteneurs en cours d'exécution, exécutez :

$ sudo podman stats

Inspecter un conteneur

Pour imprimer des détails complexes sur un conteneur, utilisez l'option d'inspection :

$ sudo podman inspect webserv2

Cela imprime une longue sortie au format JSON.

Utilisez l'option --format pour filtrer la sortie. Par exemple pour imprimer l'adresse IP de l'exécution du conteneur webserv2

$ sudo podman inspect webserv2 --format '{{.NetworkSettings.IPAddress}}'

Vous pouvez ensuite effectuer des informations supplémentaires sur l'adresse IP, par exemple en utilisant curl pour récupérer les en-têtes HTTP.

$ curl -I ip-address

Supprimer un conteneur

Pour supprimer ou supprimer complètement un conteneur, arrêtez d'abord le conteneur, s'il est en cours d'exécution, puis supprimez-le. Dans cet exemple, nous avons arrêté et supprimé le conteneur websev1.

$ sudo podman stop webserv1

Retirez ensuite le conteneur arrêté.

$ sudo podman rm webserv1

Supprimer une image

Pour supprimer une image, assurez-vous d'abord que vous avez arrêté et supprimé tous les conteneurs qui ont été lancés à partir de l'image. Ensuite, utilisez le rmi comme indiqué.

$ sudo podman rmi image_name

Par exemple, pour supprimer l'image ubuntu, exécutez la commande :

$ sudo podman rmi  docker.io/library/ubuntu

Installer le dernier Podman - Compiler à partir des sources

Vous pouvez tester la dernière version de Podman en installant la version de développement à partir de la source.

01. Créer et exécuter des dépendances

sudo apt-get install \
   btrfs-progs \
   git \
   golang-go \
   go-md2man \
   iptables \
   libassuan-dev \
   libbtrfs-dev \
   libc6-dev \
   libdevmapper-dev \
   libglib2.0-dev \
   libgpgme-dev \
   libgpg-error-dev \
   libprotobuf-dev \
   libprotobuf-c-dev \
   libseccomp-dev \
   libselinux1-dev \
   libsystemd-dev \
   pkg-config \
   runc \
   make \
   libapparmor-dev \
   gcc \
   cmake \
   uidmap \
   libostree-dev 

02. Installer Conmon

Le conmon est le moniteur de conteneur qui est un petit programme C dont le travail consiste à surveiller le processus principal du conteneur.

git clone https://github.com/containers/conmon
cd conmon
make
sudo make podman
sudo cp /usr/local/libexec/podman/conmon  /usr/local/bin/

03. Installer runc

Pour installer la dernière version de runc

git clone https://github.com/opencontainers/runc.git $GOPATH/src/github.com/opencontainers/runc
cd $GOPATH/src/github.com/opencontainers/runc
make BUILDTAGS="selinux seccomp"
sudo cp runc /usr/bin/runc

03. Installer l'interface réseau de conteneurs (CNI)

Le plug-in CNI est utilisé pour insérer une interface réseau dans l'espace de noms du réseau de conteneurs.

git clone https://github.com/containernetworking/plugins.git $GOPATH/src/github.com/containernetworking/plugins
cd $GOPATH/src/github.com/containernetworking/plugins
./build_linux.sh
sudo mkdir -p /usr/libexec/cni
sudo cp bin/* /usr/libexec/cni

Configurer le réseau

sudo mkdir -p /etc/cni/net.d
curl -qsSL https://raw.githubusercontent.com/containers/libpod/master/cni/87-podman-bridge.conflist | sudo tee /etc/cni/net.d/99-loopback.conf

Ajouter la configuration

sudo mkdir -p /etc/containers
sudo curl -L -o /etc/containers/registries.conf https://src.fedoraproject.org/rpms/containers-common/raw/main/f/registries.conf
sudo curl -L -o /etc/containers/policy.json https://src.fedoraproject.org/rpms/containers-common/raw/main/f/default-policy.json

04. Installez Podman à partir de la source

git clone https://github.com/containers/podman/ $GOPATH/src/github.com/containers/podman
cd $GOPATH/src/github.com/containers/podman
make
sudo make install
$ podman --version
podman version 4.0.0-dev

Conclusion

Nous espérons que nous vous avons fourni une base solide pour devenir un meilleur pro dans l'utilisation de podman pour créer et gérer des conteneurs. Ce guide vous a guidé tout au long de l'installation de podman sur Debian 11 Buster.


Debian
  1. Comment installer Debian 10 (Buster)

  2. Comment installer Python 3.9 sur Debian 10

  3. Comment installer Memcached sur Debian 10

  4. Comment installer TeamViewer sur Debian 10

  5. Comment installer Git sur Debian 9

Comment installer Skype sur Debian 9

Comment installer Python 3.7 sur Debian 9

Comment installer R sur Debian 10

Comment installer Debian 11

Comment installer Go sur Debian 10

Comment installer Go sur Debian