Skip to main content

install-portainer-docker

Comment utiliser Docker Compose dans Portainer

Portainer est un outil de gestion de conteneurs open source qui fournit une interface utilisateur graphique (GUI) pour votre environnement Docker. Dans ce tutoriel, je vais montrer comment utiliser Docker et Docker Compose à Portainer avec des exemples spécifiques.

Qu'est-ce que Portainer?

Portainer est un outil d'interface utilisateur web qui fournit une expérience visuelle dans votre environnement et vous permet d'attraper un coup d'oeil sur les conteneurs, images, volumes, réseaux et autres composants sans exécuter de commandes Docker fastidieuses sur le terminal.

Pourquoi utiliser Portainer avec Docker?

Portainer centralise la gestion de Docker à partir d'un point unique. Vous pouvez facilement déployer des applications conteneurisées et des piles technologiques en quelques clics de souris.

Prérequis Conditions préalables

Pour suivre ce tutoriel, assurez-vous d'avoir les conditions préalables suivantes en place.

  • Une instance de serveur Linux
    • Ubuntu 22.04
    • Debian 11 ou 12
  • Docker doit être installé sur votre instance Linux.
  • Installez docker-compose sur votre instance.

Comment utiliser Docker Compose dans Portainer

Ci-dessous, je vous explique comment utiliser Docker Compose à Portainer en trois étapes.

  • comment installer Portainer dans Docker
  • comment accéder à Portainer
  • comment déployer un serveur web Nginx avec Docker compose sur Portainer

Installer Portainer sur Docker en utilisant docker-compose

Portainer est généralement déployé comme un conteneur Docker à l'aide du moteur Docker.

Vous pouvez déployer un portainer en utilisant un volume persistant en utilisant les commandes Docker suivantes:

  1. La première commande crée un volume persistant où les données seront stockées en permanence.
docker volume create portainer_data
  1. La commande suivante fait tourner un conteneur Portainer en utilisant le volume persistant.
docker run -d -p 9000:9000 --name portainer_ce --restart always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data  portainer/portainer-ce:latest

Expliquons la commande:

La commande ci-dessus comporte plusieurs drapeaux:

  • Le flag d fait passer le container en mode dét ché. Cela signifie simplement que le conteneur fonctionne en arrière plan.
  • Le flag p est le port 9000 qui est éxécuter sur le conteneur sur le port 9000 sur l'hôte Docker.
  • Le flag --name option attribute un nom personnalisé au conteneur, dans le cas, on a choisit portainer_ce le flag permet d'attribuer un nom favorable.
  • Le flag --restart always l'option ordonne à Docker de redémarrer toujours le conteneur en cas de redémarrage ou à l'arrêt.
  • Le flag -v /var/run/docker.sock:/var/run/docker.sock controle Docker vers le conteneur portainer afin que Portainer puisse accéder au daemon Docker et intéragir avec lui.
  • Le -v portainer_data:/data cartographie le stockage de données sur le portainer jusqu'au volume persistant appelé portainer_data résidant sur l'hôte Docker.

Docker-compose Portainer.

Une meilleure approche pour déployer et exécuter Portainer est d'utiliser Docker Compose. Cela vous permet de déployer une application conteneur à partir d'un fichier de configuration YAML avec juste une seule commande.

Pour installer Docker Compose, exécutez la commande:

sudo apt install docker-compose docker-compose-plugin -y

Une fois que Docker Compose est installé, vérifiez sa version comme suit.

docker-compose version

Une fois installé, créer un fichier Docker compose YAML.

sudo nano docker-compose.yml

Ajouter les lignes de code suivantes qui détailleraient les ressources à déployer.

version: "3"
services:
portainer:
image: portainer/portainer-ce:latest
container_name: portainer
ports:
- 9000:9000
volumes:
- portainer_data:/data
- /var/run/docker.sock:/var/run/docker.sock
restart: unless-stopped
volumes:
portainer_data:

[NOTES]

Le fichier YAML inclut tous les paramètres stipulés dans le docker run commandement.

Le champ d'image est configuré pour portainer/portainer-ce:latest utiliser la dernière image CE de Portainer de Docker Hub. Le container_image champ est fixé à portainer qui sera le nom du conteneur Portainer Docker.

Le champ des ports est prévu pour cartographier le port 9000 sur le conteneur au port 9000 sur l'hôte Docker. Ainsi, le conteneur Portainer sera consulté par la navigation. https://host-ip:9000.

Le volumes champ configure un volume de données qui est monté sur le /data un répertoire à l'intérieur du conteneur. Le volume est un emplacement de stockage persistant qui maintient les données de Portainer même lorsque le conteneur redémarre ou existe.

La daemon Docker, /var/run/docker.sockest fixé directement dans le conteneur. Cela permet à Portainer d'accéder à l'installation Docker et de le gérer.

lancer Portainer, dirigez la commande suivante:

docker-compose up -d

Une fois la commande exécutée, Docker pull l'image Portainer et crée le conteneur Portainer à côté d'autres ressources définies dans le fichier de composition Docker.

2. Access Portainer

Avec le conteneur Portainer en cours d'exécution, accédez à Portainer en lançant votre navigateur et en vous dirigeant vers l'URL https://host-ip:9000

[NB:] Vous recrenez un avertissement de sécurité vous informant que la connexion n'est pas privée. Cela montre que Portainer utilise un certificat SSL auto-signé pour chiffrer le trafic web. Pour continuer, cliquez sur Advancedle lien, puis le clic Proceed to [insert server IP address]

  1. Dans le portainer, vous devrez créer un administrateur. Fournir un mot de passe et le confirmer. Puis cliquez sur Create user de créer l'utilisateur.

  2. Une fois l'utilisateur créé, vous serez redirigé vers un assistant de configuration. Cliquez sur le Get Started un bouton pour procéder avec la douille Docker locale montée dans le conteneur.

  3. Cela vous inaugure le tableau de bord de votre environnement local comme montré. Cliquez n'importe où dans la région en surbrillance indiquée.

  4. Cela vous amène à un tableau de bord qui fournit un résumé de votre environnement, y compris le nombre de piles, de conteneurs, d'images, de volumes et de réseaux.

Déployer le serveur web Nginx avec Docker compose sur Portainer

Portainer offre plusieurs options pour le déploiement d'applications. L'un d'eux est le Stacks option qui s'enroule autour du Docker compose la fonctionnalité.

Une pile est simplement un ensemble d'un ou plusieurs conteneurs qui constituent une application complète. Il pourrait se composer d'une interface utilisateur frontale, d'un serveur de base de données et d'une API.

NGINX docker portainer Cette section montre comment déployer un simple serveur web Nginx en utilisant la fonctionnalité de composer Docker.

  1. Rendez-vous sur la barre latérale gauche et cliquez sur Stacks. Dans le Stacks list Cliquez sur la section Add stack bouton.

Vous serez présenté avec quatre façons de créer une pile technologique à l'aide d'un fichier Docker.

Éditeur Web : Il vous permet de définir un fichier Docker Compose manuellement en le tapant dans l'éditeur Web fourni. C'est l'option par défaut.

Téléchargement : Comme le nom l'indique, cette option vous permet de télécharger un fichier YAML de composer un fichier YAML existant à partir de votre PC.

Dépositaire : Il charge un fichier Docker compose directement à partir d'un dépôt Git

Modèle personnalisé : Cela vous permet de faire vos modèles réutilisables. Vous pouvez y parvenir en vous en allant à la barre latérale gauche et en sélectionnant les modèles d'application et les modèles personnalisés.

[informations] Dans notre cas, nous déploierons un serveur web Nginx de base à l'aide de l'éditeur web. Voici un fichier de composition Docker que vous pouvez utiliser.

Collez le code dans l'éditeur de portainer.

version: '3.8'

services:
nginx:
image: nginx:latest
container_name: my-blog-test
ports:
- "5000:80"
volumes:
- /var/www/html:/usr/share/nginx/html
restart: always

Ensuite, faites défiler vers le bas et basculer le Enable access controlla possibilité de rendre la demande accessible au public. Puis frappez le Deploy the stack bouton.

Votre conteneur nouvellement créée apparaîtra dans le Stacks list section.

Ensuite, naviguez vers le répertoire racine web sur votre hôte Docker.

cd  /var/www/html/

Créer un index.html Fichier.


sudo nano index.html

Ajouter les lignes de code suivantes. Le code définit la page d'accueil du serveur web.

<!DOCTYPE html>
<html>
<head>
<title>Hello, Nginx!</title>
</head>
<body>
<h1>Nginx Successfully Deployed!</h1>
<p>Nginx web server was successfully deployed in a Docker container</p>
</body>
</html>

Sauvez et sortez. Visitez ensuite l'adresse IP de votre hôte sur le port 5000

http://host-ip:5000

Vous devriez obtenir la page web suivante indiquant que Nginx a été déployé avec succès.

Conclusions

Portainer est un excellent outil pour le déploiement et la gestion d'applications conteneurisées dans votre environnement Docker. Dans ce tutoriel, vous avez appris à déployer Portainer en utilisant Docker Compose. En outre, vous avez vu à quel point il est transparent d'utiliser Portainer pour déployer une pile technologique à l'aide de Docker Compose.