Installation et utilisation de Portainer pour la gestion des conteneurs Docker

Portainer pour la gestion des conteneurs Docker Ubuntu Redhat Centos Debian

Docker a révolutionné la façon dont nous construisons, empaquetons et déployons des applications. Il fournit une plateforme robuste pour la conteneurisation, permettant aux développeurs et aux administrateurs système de gérer et de déployer efficacement des applications dans des conteneurs isolés. Bien que Docker lui-même offre une interface en ligne de commande pour la gestion des conteneurs, l’utilisation de Portainer peut simplifier le processus, en particulier pour ceux qui préfèrent une interface graphique (GUI).

Portainer est un outil open source de gestion de conteneurs qui fournit une interface web intuitive pour Docker. Dans ce guide complet, nous vous guiderons à travers le processus d’installation et d’utilisation de Portainer pour gérer efficacement les conteneurs Docker.

Introduction à Portainer

Qu’est-ce que Portainer ?

Portainer est un outil léger, open source et convivial pour la gestion des conteneurs Docker. Il fournit une interface graphique qui simplifie le déploiement, la gestion et la surveillance des conteneurs et des services Docker. Portainer permet aux débutants comme aux utilisateurs expérimentés d’interagir avec Docker à travers un navigateur web, éliminant la nécessité d’une connaissance approfondie des lignes de commande.

Capture d'écran de l'interface utilisateur de Portainer

Pourquoi utiliser Portainer ?

  • Interface conviviale : L’interface web de Portainer est intuitive et facile à utiliser, la rendant accessible aux nouveaux utilisateurs de Docker.
  • Visualisation : Il offre une représentation visuelle de votre infrastructure Docker, la rendant plus facile à comprendre et à gérer.
  • Prise en charge multiplateforme : Portainer est compatible avec divers environnements Docker, y compris Docker Swarm et Kubernetes.
  • Contrôle d’accès basé sur les rôles (RBAC) : Portainer vous permet de définir des rôles et des autorisations pour les utilisateurs, améliorant la sécurité et le contrôle d’accès.
  • Surveillance des ressources : Vous pouvez surveiller l’utilisation du CPU, de la mémoire et du réseau des conteneurs et des services.
  • Modèles : Portainer fournit une bibliothèque de modèles d’applications préconfigurés, simplifiant la création de conteneurs.

Conditions préalables

Avant de plonger dans l’installation et l’utilisation de Portainer, assurez-vous d’avoir en place les conditions préalables suivantes :

Installation de Docker

Portainer repose sur Docker, vous devez donc avoir Docker installé sur votre système. Vous pouvez installer Docker en suivant la documentation officielle pour votre système d’exploitation. Reportez-vous au guide d’installation de Docker pour des instructions détaillées.

Plateformes prises en charge

Portainer peut s’exécuter sur diverses plateformes, notamment Windows, Linux, macOS et plus encore. Assurez-vous que votre système fait partie des plateformes prises en charge par Portainer.

Installation de Portainer

Il existe plusieurs façons d’installer Portainer, mais nous allons couvrir les deux méthodes les plus courantes : en utilisant une commande Docker run et en utilisant Docker Compose.

Commande Docker Run

Pour installer Portainer à l’aide d’une commande Docker run, exécutez la commande suivante :

$ docker run -d -p 9000:9000 --name portainer --restart always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce

Voici ce que fait cette commande :

  • -d : Exécute le conteneur en mode détaché.
  • -p 9000:9000 : Mappe le port 9000 sur votre hôte au port 9000 dans le conteneur.
  • --name portainer : Nomme le conteneur “portainer”.
  • --restart always : Configure le conteneur pour redémarrer automatiquement.
  • -v /var/run/docker.sock:/var/run/docker.sock : Donne à Portainer l’accès au socket Docker.
  • -v portainer_data:/data : Persiste les données de Portainer dans un volume nommé “portainer_data”.
  • portainer/portainer-ce : Spécifie l’image Portainer Community Edition.

Utilisation de Docker Compose

Une autre approche pour installer Portainer consiste à utiliser Docker Compose. Créez un fichier docker-compose.yml avec le contenu suivant :

version: '3'
services:
  portainer:
    image: portainer/portainer-ce
    ports:
      - 9000:9000
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - portainer_data:/data
    restart: always
volumes:
  portainer_data:

Exécutez la commande suivante pour démarrer Portainer à l’aide de Docker Compose :

$ docker-compose up -d

Installations personnalisées

Bien que la commande Docker run et Docker Compose soient les méthodes d’installation les plus courantes, les utilisateurs avancés peuvent nécessiter des installations personnalisées pour répondre à des exigences spécifiques ou intégrer Portainer dans des environnements complexes. Ici, nous fournirons des conseils étape par étape pour les installations personnalisées.

1. Installation de Portainer avec Kubernetes

Prérequis :

  • Un cluster Kubernetes opérationnel.
  • L’outil de ligne de commande kubectl configuré pour accéder à votre cluster.

Étapes :

1 – Créez un espace de noms Portainer dans votre cluster Kubernetes :

$ kubectl create namespace portainer

2 – Déployez Portainer à l’aide de la charte Helm officielle :

$ helm repo add portainer https://portainer.github.io/k8s/
$ helm repo update
$ helm install portainer portainer/portainer -n portainer

3 – Accédez à Portainer en transférant le port vers un port local (par exemple 9000) :

$ kubectl port-forward -n portainer svc/portainer 9000:9000

Vous pouvez ensuite accéder à Portainer sur http://localhost:9000 dans votre navigateur web.

2. Installation de Portainer en tant que pile Swarm

Prérequis :

  • Un cluster Docker Swarm configuré.
  • Docker Compose installé sur votre nœud gestionnaire Swarm.

Étapes :

1 – Créez un fichier docker-compose.yml pour Portainer :

version: '3.4'
services:
  agent:
    image: portainer/agent
    environment:
      AGENT_CLUSTER_ADDR: tasks.agent
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - /var/lib/docker/volumes:/var/lib/docker/volumes
    networks:
      - agent_network
    deploy:
      mode: global
      placement:
        constraints:
          - node.platform.os == linux
  portainer:
    image: portainer/portainer-ce
    ports:
      - 9000:9000
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - portainer_data:/data
    networks:
      - agent_network
    deploy:
      placement:
        constraints:
          - node.role == manager
networks:
  agent_network:
    driver: overlay 
    attachable: true
volumes:
  portainer_data:version: '3.4'
services:
  agent:
    image: portainer/agent
    environment:
      AGENT_CLUSTER_ADDR: tasks.agent
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - /var/lib/docker/volumes:/var/lib/docker/volumes
    networks:
      - agent_network
    deploy:
      mode: global
      placement:
        constraints:
          - node.platform.os == linux
  portainer:
    image: portainer/portainer-ce
    ports:
      - 9000:9000
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - portainer_data:/data
    networks:
      - agent_network
    deploy:
      placement:
        constraints:
          - node.role == manager
networks:
  agent_network:
    driver: overlay 
    attachable: true
volumes:
  portainer_data:

2 – Déployez Portainer en tant que pile dans votre cluster Swarm :

$ docker stack deploy -c docker-compose.yml portainer 

3 – Accédez à Portainer en naviguant vers http://votre_ip_swarm_manager:9000 dans votre navigateur web.

3. Personnalisation des configurations Portainer

Portainer vous permet de personnaliser ses configurations à l’aide de variables d’environnement et de fichiers de configuration. Vous pouvez spécifier des options telles que des certificats SSL personnalisés, des méthodes d’authentification, etc. en vous référant à la documentation officielle.

En suivant ces méthodes d’installation personnalisées, vous pouvez adapter Portainer à vos besoins spécifiques et l’intégrer de manière transparente dans vos environnements Docker ou Kubernetes.

Accéder à l’interface web Portainer

Une fois Portainer opérationnel, vous pouvez accéder à son interface web en naviguant vers http://localhost:9000 dans votre navigateur web. Si vous avez installé Portainer sur un serveur distant, remplacez localhost par l’adresse IP ou le nom d’hôte du serveur.

Vous serez accueilli par un écran de configuration initial pour créer votre compte admin et configurer Portainer.

Configuration Portainer

Configuration de Portainer

Création du compte admin

  1. Cliquez sur le bouton “Créer un compte administrateur”.
  2. Entrez un nom d’utilisateur, un mot de passe et une adresse e-mail.
  3. Cliquez sur “Créer l’utilisateur”.

Connexion à l’hôte Docker

Portainer vous permet de gérer plusieurs hôtes Docker. Pour vous connecter à votre hôte Docker local :

  1. Choisissez “Local” comme nom de point de terminaison.
  2. Sélectionnez “Docker” comme environnement.
  3. Cliquez sur “Se connecter”.

Configuration du stockage des données

Vous pouvez configurer l’emplacement où Portainer stocke ses données. Par défaut, il utilise un volume nommé (par exemple portainer_data) pour la persistance des données. Vous pouvez personnaliser cela dans le fichier Docker Compose si nécessaire.

Configuration de l’accès et des autorisations des utilisateurs

Portainer prend en charge le contrôle d’accès basé sur les rôles (RBAC) pour gérer les autorisations des utilisateurs.

Pour créer un nouveau rôle utilisateur :

  1. Accédez aux “Paramètres”
  2. Sélectionnez “Utilisateurs et équipes”
  3. Cliquez sur “Ajouter un rôle”
  4. Configurer le nom du rôle, les autorisations, etc.
  5. Cliquez sur “Créer”

Vous pouvez ensuite attribuer des rôles restreints aux utilisateurs sans accès admin complet.

Gestion des conteneurs Docker avec Portainer

Maintenant que vous avez configuré Portainer, explorons certaines de ses fonctionnalités clés pour la gestion des conteneurs Docker.

Déploiement de conteneurs à partir de modèles

Portainer propose une bibliothèque de modèles qui simplifie le déploiement d’applications courantes.

Par exemple, pour déployer un site WordPress :

  1. Accédez à la section “Modèles d’applications”
  2. Localisez le modèle WordPress
  3. Remplissez les détails du conteneur
  4. Cliquez sur “Déployer le conteneur”

Cela téléchargera automatiquement les images requises et déploiera WordPress à l’aide de paramètres optimaux.

Surveillance des conteneurs

La vue des conteneurs fournit des données de surveillance en temps réel sur le statut, l’utilisation du CPU, l’utilisation de la mémoire, le trafic réseau, etc.

Surveillance des conteneurs Portainer

Cela permet d’identifier les goulots d’étranglement des ressources lors du dépannage.

Gestion des paramètres des conteneurs

Portainer vous permet de modifier les paramètres des conteneurs comme les variables d’environnement, les ports, les volumes, etc. après le déploiement.

Pour modifier un conteneur en cours d’exécution :

  1. Accédez à la section “Conteneurs”
  2. Sélectionnez un conteneur
  3. Cliquez sur “Modifier” pour changer les paramètres
  4. Cliquez sur “Mettre à jour” pour enregistrer les modifications

Exécutions de conteneurs

Vous pouvez également exécuter directement des commandes à l’intérieur d’un conteneur depuis l’interface utilisateur Portainer :

  1. Accédez aux “Conteneurs”
  2. Sélectionnez un conteneur
  3. Cliquez sur “Console”
  4. Exécutez les commandes dans la fenêtre de console

Cela permet de déboguer les conteneurs sans utiliser docker exec.

Sauvegardes de conteneurs

Portainer permet de prendre des snapshots des volumes et du système de fichiers des conteneurs. Cela permet de restaurer ou de migrer des données si nécessaire.

Pour créer une sauvegarde :

  1. Accédez aux “Conteneurs”
  2. Sélectionnez un conteneur
  3. Cliquez sur “Sauvegardes”
  4. Cliquez sur “Sauvegarder” et donnez un nom à la sauvegarde

La sauvegarde sera enregistrée sur le système de fichiers hôte.

Prise en charge de Swarm et Kubernetes

Portainer étend ses capacités au-delà des hôtes Docker uniques. Il prend en charge Docker Swarm et Kubernetes, vous permettant de gérer des clusters et d’orchestrer des conteneurs à grande échelle.

Déploiement de piles dans Swarm

Vous pouvez utiliser Portainer pour déployer des applications multi-services dans Swarm à l’aide de fichiers de pile :

  1. Accédez à “Piles” dans les environnements Swarm
  2. Cliquez sur “Ajouter une pile”
  3. Configurez les détails de la pile et le fichier compose
  4. Cliquez sur “Déployer la pile”

Cela déploiera l’application sur plusieurs nœuds.

Gestion de Kubernetes

Avec la prise en charge de Kubernetes par Portainer, vous pouvez simplifier la gestion des éléments Kubernetes :

  • Voir l’état du cluster, les nœuds, les déploiements, les pods, etc.
  • Déployer et mettre à l’échelle les charges de travail Kubernetes
  • Modifier les configurations et spécifications des pods
  • Gérer les espaces de noms, les quotas, les secrets

Tout cela sans expertise approfondie en Kubernetes !

Sauvegarde et restauration

Les données sont cruciales et Portainer fournit une fonctionnalité intégrée de sauvegarde et de restauration. Vous pouvez exporter les données Portainer sous forme de fichier de sauvegarde et les restaurer en cas de besoin. Cela garantit que vous ne perdez pas vos configurations et paramètres.

Pour créer une sauvegarde :

  1. Accédez aux “Paramètres”
  2. Cliquez sur “Sauvegarde”
  3. Sélectionnez les options de sauvegarde
  4. Cliquez sur “Télécharger la sauvegarde”

Stockez ce fichier de sauvegarde en lieu sûr. Vous pouvez restaurer en téléchargeant l’archive de sauvegarde dans la même section.

Bonnes pratiques de sécurité

Garantir la sécurité de votre installation Portainer et de vos conteneurs Docker est essentiel. Voici quelques bonnes pratiques :

Sécurisation du serveur Portainer

  • Utilisez HTTPS avec un certificat SSL valide
  • Restreignez l’accès à l’interface utilisateur aux IP/sous-réseaux de confiance
  • Durcissez les configurations de sécurité du système d’exploitation hôte
  • Suivez les principes de moindre privilège pour les rôles utilisateur
  • Activez l’authentification avec OAuth/LDAP

Sécurisation des conteneurs Docker

  • Analysez régulièrement les images pour détecter les vulnérabilités
  • Évitez d’utiliser les derniers tags. Épinglez les versions à la place.
  • Limitez les privilèges des conteneurs via des volumes en lecture seule, AppArmor, etc.
  • Définissez des limites et des garanties de CPU/mémoire
  • Utilisez des règles de pare-feu pour restreindre l’accès réseau
  • Surveillez les logs et les métriques pour détecter les anomalies

Surveillance et alertes

  • Intégrez Portainer avec Prometheus pour collecter des métriques
  • Transférez les logs de conteneurs vers ELK pour analyse
  • Configurez des alertes dans Grafana pour les événements critiques
  • Surveillez l’utilisation des ressources hôtes et conteneurs
  • Soyez notifié en cas de tentatives d’accès non autorisé

Conclusion

Portainer simplifie la gestion des conteneurs Docker, la rendant accessible aux débutants comme aux experts. En suivant ce guide complet, vous avez appris à installer, configurer et utiliser Portainer pour rationaliser les opérations de conteneurs Docker. De plus, vous avez obtenu des informations sur les meilleures pratiques de sécurité pour protéger vos applications conteneurisées.

Alors que vous poursuivez votre parcours avec Docker et la conteneurisation, Portainer restera un outil précieux dans votre boîte à outils, améliorant votre capacité à gérer et à mettre à l’échelle les applications conteneurisées de manière efficace. Bonne conteneurisation !

Laisser un commentaire