Gérer les conteneurs avec Podman et Skopeo

Red Hat Enterprise LinuxBeginner
Pratiquer maintenant

Introduction

En tant qu'administrateur système travaillant avec Red Hat Enterprise Linux (RHEL), la gestion des applications conteneurisées est une compétence fondamentale. Dans ce défi, vous utiliserez les outils en ligne de commande podman et skopeo pour effectuer des tâches essentielles de gestion de conteneurs. Vous vous exercerez à récupérer des images depuis un registre public, à les exécuter en tant que conteneurs, à inspecter leur configuration et à copier des images vers un registre local.

Télécharger et exécuter une image de conteneur

Votre première tâche consiste à télécharger une image de conteneur depuis un registre public et à l'exécuter sur votre système local. Vous utiliserez l'image du serveur web nginx, un choix courant pour démontrer les fonctionnalités des conteneurs.

Tâches

  • Téléchargez la dernière image de conteneur nginx depuis le registre docker.io à l'aide de la commande podman.
  • Exécutez un conteneur à partir de l'image nginx et vérifiez qu'il est opérationnel.

Exigences

  • Le conteneur nginx doit être nommé my-nginx.
  • Le conteneur doit s'exécuter en arrière-plan (mode détaché).
  • Le port 80 du conteneur doit être redirigé vers le port 8080 de votre machine locale.

Exemple

Après avoir exécuté le conteneur avec succès, vous pouvez tester son accessibilité. La commande curl devrait renvoyer la page d'accueil par défaut de Nginx.

$ curl http://localhost:8080

<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
...
</html>
✨ Vérifier la solution et pratiquer

Inspecter un conteneur

Après avoir lancé un conteneur, il est souvent nécessaire de récupérer des informations détaillées sur sa configuration, ses paramètres réseau et ses volumes montés. La commande podman inspect fournit ces informations dans un format JSON structuré.

Tâches

  • Inspectez le conteneur my-nginx en cours d'exécution.
  • Redirigez le résultat de l'inspection vers un fichier.

Exigences

  • Utilisez la commande podman inspect pour obtenir les détails du conteneur my-nginx.
  • Enregistrez la sortie JSON dans un fichier nommé nginx-inspect.json à l'intérieur du répertoire ~/project/containers/.

Exemple

Le fichier nginx-inspect.json contiendra un large tableau JSON avec tous les détails de configuration du conteneur. Vous pouvez visualiser son contenu avec la commande cat ou less.

$ cat ~/project/containers/nginx-inspect.json
[
    {
        "Id": "a933dd...c8e",
        "Created": "2023-10-27T10:30:00.123456789Z",
        "Path": "/docker-entrypoint.sh",
        "Args": [
            "nginx",
            "-g",
            "daemon off;"
        ],
        "State": {
...
✨ Vérifier la solution et pratiquer

Copier une image de conteneur avec Skopeo

skopeo est un outil puissant pour déplacer des images de conteneurs entre différents types de stockage, tels que les registres publics, le stockage local et les registres privés. Dans cette étape, vous allez copier l'image nginx vers un registre de conteneurs local qui s'exécute sur votre machine.

Par défaut, Podman et Skopeo ne pousseront pas d'images vers un registre non sécurisé (HTTP). Vous devez d'abord configurer votre système pour faire confiance au registre local en utilisant le format de configuration de registre moderne v2.

Tâches

  • Configurez votre système pour autoriser l'envoi d'images vers le registre local non sécurisé à l'adresse localhost:5000.
  • Utilisez skopeo pour copier l'image nginx:latest de docker.io vers votre registre local.
  • Téléchargez l'image depuis votre registre local vers le stockage local de Podman pour vérifier que la copie a réussi.

Exigences

  • Modifiez le fichier /etc/containers/registries.conf pour configurer localhost:5000 comme un registre non sécurisé en utilisant le format v2. Vous aurez besoin des privilèges sudo pour cela.
  • Utilisez skopeo copy pour copier l'image docker.io/library/nginx:latest.
  • La destination de l'image dans le registre local doit être localhost:5000/my-local-nginx:latest.
  • Après la copie, utilisez podman pull pour récupérer localhost:5000/my-local-nginx:latest.
✨ Vérifier la solution et pratiquer

Résumé

Dans ce défi, vous avez acquis les compétences essentielles pour gérer des conteneurs sur un système Red Hat Enterprise Linux. Vous avez utilisé avec succès podman pour télécharger une image, l'exécuter en tant que conteneur nommé avec redirection de port, et inspecter sa configuration détaillée. De plus, vous avez pratiqué une tâche cruciale en conditions réelles : la configuration d'un registre non sécurisé et l'utilisation de skopeo pour copier une image d'une source publique vers un registre privé local. Ces commandes sont des outils fondamentaux pour tout administrateur système travaillant dans un environnement conteneurisé moderne.