Utiliser Docker
Résumé: Docker est une plate-forme utilisée pour exécuter des applications dans les conteneurs. Elle vous permet d’utiliser des logiciels spécifiques, tels que Redis ou MongoDB, ou une version spécifique d’un logiciel, pouvant ne pas être pris en charge par votre système d’exploitation ou nécessitant une compilation.
Docker est disponible en tant qu’extension Plesk. Avec cette extension, vous pouvez exécuter et gérer des conteneurs basés sur des images Docker spécifiques et utiliser Docker non seulement sur l’hôte local, mais aussi sur les serveurs distants.
Dans cette section, vous découvrirez comment créer, configurer et gérer des conteneurs Docker dans Plesk. Vous découvrirez également comment contrôler les hôtes Docker distants depuis Plesk.
Exigences et limites
Avertissement: L’extension Docker télécharge les images depuis Docker Hub telles quelles et ne les préconfigure en aucune façon. Certains conteneurs Docker ou certains logiciels dans ces conteneurs sont destinés à fonctionner uniquement dans des environnements sécurisés et peuvent requérir des configurations supplémentaires en termes de sécurité. Avant de lancer ces images téléchargées dans Plesk, vous devez renforcer vous-même leur sécurité. Pour obtenir des informations spécifiques, consultez la documentation du conteneur ou du fournisseur du logiciel. Par exemple, consultez la section sur la sécurité dans la documentation Redis.
-
Docker est pris en charge dans Plesk pour les systèmes d’exploitation suivants : CentOS 7, Red Hat Enterprise Linux 7, Debian 10, Debian 11, Debian 12, Ubuntu 18.04, Ubuntu 20.04, Ubuntu 22.04, Ubuntu 24.04, AlmaLinux 8.x, AlmaLinux 9.x, Rocky Linux 8.x et Virtuozzo 7 avec Update Hotfix 1 (7.0.1-686) ou les versions ultérieures.
Dans Plesk pour Windows, vous pouvez utiliser Docker installé sur une machine distante (voir **Utilisation de Docker à distance** plus bas dans cette section).
-
Vous ne pouvez pas utiliser Docker dans Plesk déployé dans un conteneur Docker.
-
Pour utiliser les services Docker à distance dans Plesk, vous avez besoin d’une licence supplémentaire. Vous pouvez soit l’acheter séparément soit via le Hosting Pack <https://store.plesk.com/1404/purl-ext-offer-hosting-pack>`__, le Power Pack ou le Developer Pack.
-
Docker ne fonctionne que sur des systèmes x64.
-
Il est impossible de migrer ou sauvegarder des conteneurs Docker dans Plesk. Toutefois, vous pouvez sauvegarder les données utilisées par les conteneurs (voir Mappage de volume ci-après) ou télécharger des snapshots.
-
Virtuozzo 7 avec Mise à jour 1 Correctif 1 (7.0.1-686) ou version ultérieure est installé et pris en charge. Remarque : à partir de cette mise à jour, les nouveaux conteneurs sous CentOS 7 sont créés avec pare-feu activé par défaut, Virtuozzo étant en valeur d’une sécurité accrue. L’administrateur Plesk doit configurer manuellement le pare-feu pour que les ports nécessaires au bon fonctionnement de Plesk soient ouverts.
Prérequis
Avant de pouvoir commencer à utiliser Docker, l’extension Docker doit être installée sur le serveur Plesk :
- Si vous êtes l’administrateur de Plesk, installez l’extension depuis le Catalogue des extensions.
- Si vous n’êtes pas administrateur, contactez votre hébergeur et demandez-lui d’installer l’extension pour vous.
Une fois que l’extension est installée, vous pourrez commencer. Vous verrez l’option Docker dans le volet de navigation.
Conteneurs
Vous pouvez accéder aux images depuis Docker Hub dans le catalogue Run Container (Docker > Conteneurs > Exécuter le conteneur).
Pour accéder au catalogue :
- si vous n’avez pas encore installé de conteneur, cliquez sur Exécuter le conteneur dans Docker > Conteneurs.
- si vous avez déjà installé un conteneur, cliquez sur l’icône plus
dans Docker > Conteneurs.
Pour voir les images disponibles, utilisez le champ de recherche.
Spécifiez le nom de l’image, le référentiel ou les deux.
Ces répertoires sont disponibles pour la recherche :
- Répertoire local, contenant des images locales. Ces images sont déjà téléchargées et sont stockées sur le serveur avec Docker. Pour plus d’informations, consultez la rubrique Gestion d’images locales plus bas dans cette section.
- Docker Hub.
Plusieurs versions peuvent être disponibles pour chaque application. Vous pouvez exécuter une version spécifique en sélectionnant la variable appropriée, comme indiqué ci-dessous :
Pour exécuter un conteneur :
-
Allez sous Docker > Containeurs > Exécuter le conteneur.
-
Utilisez le champ de recherche pour trouver des images dans le catalogue. Si l’image est stockée localement, la mention (local) s’affiche après la version.
-
Pour voir la description d’une image et la documentation sur Docker Hub, cliquez sur le nom de l’image. Cela ne fonctionne pas pour les images locales.
-
Cliquez sur la carte image.
- Pour exécuter une version spécifique, sélectionnez la version de l’image que vous souhaitez exécuter dans la liste déroulante Version d’image et cliquez sur Suivant.
- Pour exécuter la dernière version de l’application sélectionnée, cliquez sur Suivant.
Plesk crée un conteneur, vous invite à en définir les paramètres (variables d’environnement, etc.), puis l’exécute. Vous pouvez annuler l’exécution en cliquant sur Annuler sur l’écran Paramètres. Pour plus d’informations sur les paramètres, consultez la rubrique Paramètres des conteneurs plus bas sur cette page.
-
Après avoir ajusté les paramètres, cliquez sur Exécuter. Le conteneur apparaît dans la liste des conteneurs de l’onglet Conteneurs.
Consultez le journal de la console pour savoir si le conteneur fonctionne sans problème.
Paramètres des conteneurs
Note: Pour modifier les paramètres d’un conteneur, il n’est pas nécessaire de l’arrêter. Lorsque vous enregistrez les nouveaux paramètres, Plesk recrée le conteneur.
Pour modifier les paramètres du conteneur, allez dans l’onglet Conteneurs et cliquez sur l’icône des paramètres à côté du conteneur que vous souhaitez modifier.
Limitation de la mémoire
Par défaut, l’utilisation de la RAM dans un conteneur Docker est illimitée. Pour limiter l’utilisation de la RAM, décochez la case Limitation de la mémoire et saisissez la valeur limite en mégaoctets dans le champ Mo.
Note: Pour le moment, il est impossible de limiter l’utilisation du CPU et du disque pour un conteneur Docker.
Note: Les conteneurs Docker sont des objets de niveau administrateur. Ils ne sont pas contrôlés par les limites Cgroup au niveau de l’abonnement (utilisation du CPU, de la RAM et du disque).
Démarrage automatique
Si l’option Démarrage automatique après redémarrage du système n’est pas sélectionnée, après redémarrage système, les sites Web utilisant ce conteneur risquent d’être hors service et le conteneur doit être redémarré manuellement.
Mappage de port
Par défaut, le mappage de port automatique est activé et le port interne du conteneur est mappé à un port aléatoire du système hôte, par exemple 32768.
Pour modifier le port sur le système hôte, décochez l’option Mappage de port automatique et indiquez un autre port externe dans le Mappage manuel. Si le Mappage manuel n’apparaît pas lorsque vous décochez la case, cela signifie que le conteneur n’expose pas les ports.
Lors de l’utilisation du mappage manuel, Docker est associé par défaut uniquement au port spécifié sur l’interface localhost du système hôte (127.0.0.1). De cette façon, le port est inaccessible depuis Internet et l’application dans le conteneur est à l’abri des attaques. Pour que Docker soit associé au port spécifié sur toutes les interfaces réseau du système hôte, décochez la case « Ne pas autoriser les connexions à ce port depuis Internet ». Ainsi, l’application dans le conteneur devient accessible depuis Internet et peut être atteinte sur le port spécifié via n’importe quelle adresse IP du système hôte.
Avertissement: Docker suppose que l’authentification est effectuée par l’application elle-même, mais parfois ce n’est pas le cas (par exemple, MySQL/MariaDB n’autorise pas l’accès anonyme par défaut, contrairement à Redis). Rendre l’application située dans un conteneur accessible depuis Internet peut entraîner l’attaque de l’application par un acteur malveillant.
Mappage de volume
Les volumes Docker sont des répertoires sur votre serveur, avec montage sur un conteneur Docker. Vous disposez ainsi d’un stockage permanent accessible depuis votre système hôte. Les données des volumes Docker ne sont pas supprimées si vous arrêtez ou supprimez un conteneur.
Avertissement: Les données stockées dans les volumes Docker ne seront pas incluses dans la sauvegarde Plesk. Pour éviter de perdre des données, sauvegardez toutes les données essentielles stockées dans un volume à l’aide d’un outil de sauvegarde tiers.
Pour en savoir plus sur les données dans les conteneurs, consultez la documentation Docker.
Pour ajouter un mappage de volume, définissez les éléments suivants :
- Dans le champ Hôte : indiquez le chemin d’accès absolu vers un répertoire sur le serveur que vous voulez monter dans le conteneur.
- Dans le champ Conteneur : indiquez le chemin absolu vers un répertoire dans le conteneur.
Pour mapper d’autres répertoires, cliquez sur Ajouter un mappage.
Configuration de variables d’environnement
Les variables d’environnement sont utilisées par l’application dans un conteneur. Vous devrez peut-être ajouter ou modifier des variables. Plesk permet d’ajouter autant de variables que nécessaire.
Opérations sur les conteneurs
Vous pouvez effectuer les actions suivantes avec des conteneurs :
-
Arrêter (Stop), démarrer (Start) ou redémarrer (Restart) un conteneur. Dans ces cas, le conteneur sera recréé avec les paramètres actuels.
Note: Si vous n’avez pas enregistré les données sur les volumes montés (voir Mappage de volume plus bas), elles seront perdues.
-
Cliquez sur la flèche
à côté du conteneur pour afficher les journaux et la consommation des ressources.
-
Cliquez sur l’icône des paramètres
à côté du conteneur pour modifier les paramètres du conteneur, tels que les variables d’environnement ou le mappage de volume (Paramètres).
-
Renommer un conteneur (Paramètres > Nom du conteneur).
Cliquez sur l’icône Plus d’options à côté du conteneur pour effectuer une ou plusieurs des opérations suivantes :
- Recréer un conteneur avec la même image ou une autre version (Recréer).
- Créer une image reposant sur un conteneur avec vos paramètres personnalisés (Enregistrer sous, Image).
- Faire un snapshot d’un conteneur (Télécharger le snapshot).
- Supprimer un conteneur (Supprimer).
Recréation d’un conteneur
En général, vous devez recréer un conteneur pour mettre à jour l’application. En réalité, vous pouvez reconstruire un conteneur depuis toute version de l’application disponible dans l’application, et non seulement depuis une version récente.
Les paramètres personnalisés sont conservés pendant la recréation. Pour conserver les données utilisées par l’application dans le conteneur, vous devez définir le mappage de volume avant de recréer un conteneur. Le mappage de volume vous permet d’accéder aux répertoires dans un conteneur (voir le Mappage de volume dans les paramètres de conteneur).
Pour recréer un conteneur :
#. Go to Docker and click the more options icon next to
the container you want to recreate.
#. Click Recreate in the container settings and specify the image
version and whether to use default environment variables.
Utilisation de Docker à distance
Par défaut, Plesk utilise Docker installé en tant que service local. Toutefois, vous pouvez utiliser un ou plusieurs services Docker installés hors de Plesk. Remarque : vous ne pouvez utiliser qu’un service à la fois. Vous pouvez voir le serveur actif dans l’onglet Environnements de la page des paramètres Docker dans Plesk.
Note: Gérer des services Docker distants requiert un add-on de clé de licence de Plesk. Sans cet add-on, vous ne pouvez gérer que le service Docker local exécuté sur le serveur Plesk.
Configuration de services distants
Configurez le serveur distant exécutant Docker comme décrit dans la documentation Docker pour l’utiliser comme serveur distant dans Plesk.
Gérer des services distants
Vous pouvez établir une connexion entre un serveur Plesk avec l’extension Docker et un nœud distant avec le service Docker.
Les étapes suivantes sont valables pour Plesk pour Linux et Windows.
Ces étapes doivent être effectuées sur l’hôte distant :
#. Create the /etc/docker/daemon.json
configuration file for Docker
with the following content:
1 2 3 4 5 6 7 8 |
{ "hosts": ["tcp://0.0.0.0:2376", "unix:///var/run/docker.sock"], "tls": true, "tlsverify": true, "tlscacert": "/root/ca.pem", "tlscert": "/root/server-cert.pem", "tlskey": "/root/server-key.pem" } |
#. Prepare .pem
files. You can use the following example. Replace the IP on
line 4 with the IP address of your remote node and run each command:
1 2 3 4 5 6 7 8 9 10 |
openssl genrsa -aes256 -out ca-key.pem 4096 openssl req -new -x509 -days 365 -key ca-key.pem -sha256 -out ca.pem openssl genrsa -out server-key.pem 4096 openssl req -subj "/CN=192.0.2.1" -new -key server-key.pem -out server.csr openssl x509 -req -days 365 -sha256 -in server.csr -CA ca.pem -CAkey ca-key.pem -CAcreateserial -out server-cert.pem openssl genrsa -out key.pem 4096 openssl req -subj '/CN=client' -new -key key.pem -out client.csr openssl x509 -req -days 365 -sha256 -in client.csr -CA ca.pem -CAkey ca-key.pem -CAcreateserial -out cert.pem chmod 0400 ca-key.pem server-key.pem key.pem chmod 0444 ca.pem server-cert.pem cert.pem |
- Exécutez les commandes suivantes pour modifier le service Docker actuel afin qu’il démarre après la configuration de l’hôte :
1 2 3 4 |
cp /lib/systemd/system/docker.service /etc/systemd/system/ sed -i 's/\ -H\ fd:\/\///g' /etc/systemd/system/docker.service systemctl daemon-reload systemctl restart docker |
- Enregistrez les sorties des fichiers suivants sur votre machine locale pour que le client puisse les utiliser pour se connecter à distance :
1 2 3 |
cat key.pem cat cert.pem cat ca.pem |
Sur le serveur local, configurez l’hôte distant Docker :
- Allez dans Docker > Environnements.
- Cliquez sur Ajouter un serveur
et indiquez les paramètres du serveur distant avec Docker.
- Pour commencer à utiliser ce service Docker dans Plesk, gardez l’option Définir sur activé.
Le lien vers Docker apparaît dans le volet de navigation.
Pour changer de service Docker :
- Allez dans Docker > Environnements.
- Dans la liste des serveurs, sélectionnez celui que vous allez utiliser et cliquez sur Définir sur actif.
Autre solution : définissez le nœud sur Activé lorsque vous modifiez ses paramètres.
Création d’images avec des paramètres personnalisés
Pour créer une image selon les modifications apportées à un conteneur, utilisez la commande Enregistrer sous Image. Cela crée un snapshot de votre conteneur qui apparaît en tant que nouvelle image dans le catalogue d’images. Ainsi vous pouvez créer des images avec des paramètres personnalisés, des variables d’environnement par exemple.
Pour créer une image depuis l’un de vos conteneurs :
Allez sous Docker > Conteneurs. Cliquez sur l’icône Plus d’options à côté du conteneur, puis cliquez sur > Enregistrer sous, Image. Dans le panneau latéral Enregistrer <container name> comme image, spécifiez :
- Le nom de l’image.
- Balise facultative. Vous pouvez spécifier ici la version de l’image. Par défaut, la version sera « latest ».
L’image créée s’affiche dans le catalogue d’images avec la mention Image locale.
Gestion des images locales
Les images locales sont celles stockées par Docker sur le disque local. Il est donc inutile de les télécharger depuis le catalogue d’images.
Une image devient locale dans les situations suivantes :
- Vous avez sélectionné une version (balise) d’une image dont le téléchargement a commencé. Si vous exécutez ensuite un conteneur ou annulez l’exécution (écran Paramètres), l’image est enregistrée en local.
- Vous chargez une image dans le catalogue Docker dans Plesk (Charger l’image dans l’onglet Téléverser l’image).
- Vous avez créé une image personnalisée depuis un conteneur (voir Création d’images avec des paramètres personnalisés).
- Vous avez généré une image avec l’interface de ligne de commande.
Pour télécharger une autre version d’une image à partir du catalogue en ligne, cliquez sur l’icône Récupérer . Choisissez la version que vous souhaitez extraire dans la liste déroulante et cliquez sur Récupérer.
Si Docker héberge au moins une version téléchargée d’un groupe de versions d’une image, cette image est marquée comme Image locale dans le catalogue. Plesk indique aussi le nombre d’images locales pour un produit.
Pour voir les images locales et supprimer les images locales obsolètes :
-
Allez dans Docker > Images.
-
Pour trouver une image locale spécifique, utilisez la barre de recherche.
-
Pour voir toutes les images locales d’un produit précis, cliquez sur le lien sous le nom du produit. Toutes les balises des images locales et l’espace disque occupé sont indiqués.
-
Sélectionnez la ou les images spécifiques que vous souhaitez supprimer et cliquez sur Supprimer.
Configuration de Nginx pour les requêtes proxy de domaines sur un conteneur
Certains conteneurs Docker exposent les ports, de sorte que les applications dans les conteneurs sont accessibles via ces ports.
Lorsque vous utilisez une application dans un conteneur Docker sur votre site Web, il peut être pratique d’indiquer le port non standard dans son URL. Pour éviter des désagréments, vous pouvez configurer Nginx pour les requêtes proxy de domaines sur ce port, pour que les domaines puissent utiliser un port standard (80 par exemple) sans devoir indiquer explicitement le port dans l’URL.
Exigences
- Nginx doit être exécuté dans Plesk.
- Vous devez mapper manuellement le port au sein d’un conteneur à un port sur le système hôte (par exemple, 32768).
Pour mapper le port au sein d’un conteneur :
- Pour modifier les paramètres du conteneur, allez dans l’onglet Conteneurs et cliquez sur l’icône des paramètres
à côté du conteneur que vous souhaitez modifier.
- Désactivez le mappage automatique des ports.
- Associez manuellement le port du conteneur à un port spécifique de votre système (par exemple : 32768). Vous pouvez rendre ce port inaccessible depuis Internet.
You can set up nginx to proxy requests from domains to that port, so domains can use a standard port on nginx (for example, 80). To make this possible, add a rule for nginx in the domain settings.
Pour ajouter une règle pour nginx dans les paramètres du domaine :
Allez sous Sites Web & Domaines > domaine > Règles de proxy Docker > Ajouter une règle et définissez les éléments suivants :
- URL. Indiquez l’URL du site Web utilisant une application s’exécutant dans un conteneur. Il peut s’agir du site Web principal ou d’une partie de ce site.
- Conteneur. Sélectionnez l’application s’exécutant en tant que conteneur Docker.
- Port. Sélectionnez l’un des mappages indiqués dans les paramètres du conteneur (port dans un conteneur mappé à un port de votre système). Nginx transmet alors par proxy des requêtes au port sur le système.
Les règles de proxy sont mises en œuvre dans la configuration du serveur Web, par ex. dans le fichier du site Web nginx.conf
(dans /var/www/vhosts/system/$domain/conf/
):
#extension docker begin
location ~ ^/.* {
proxy_pass http://0.0.0.0:9080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
#extension docker end
Les règles de proxy devraient fonctionner correctement sur les serveurs derrière NAT.
Note: Les conteneurs Docker connectés via des règles de proxy à un site Web ne sont pas comptabilisés dans l’utilisation de l’espace disque de l’abonnement. Ferait exception à cette règle un répertoire de site Web monté sur un conteneur Docker en tant que volume, car dans ce cas, tous les fichiers situés dans le conteneur sont comptabilisés dans l’utilisation de l’espace disque par le site Web.
Déployer des fichiers YAML de Docker Compose
Vous pouvez déployer des fichiers YAML Docker Compose à l’aide de l’éditeur de texte en ligne, en téléversant un fichier depuis le stockage local ou en utilisant un fichier Docker Compose stocké dans le répertoire personnel d’un site web. Les opérations classiques sur les piles sont prises en charge, telles que up
(y compris pull
et force-recreate
), stop
et down
. Vous pouvez modifier et mettre à jour les piles après leur création.
Note: Vous ne pouvez pas déployer Dockerfiles ou tout autre fichier requis par une application à l’aide de cette section.
Pour déployer un fichier Docker Compose :
-
Accédez à Docker > Stacks > Ajouter stack.
-
Saisissez un nom de projet et choisissez l’une des méthodes de déploiement du fichier docker-compose :
- Éditeur : définissez ou collez le contenu de votre fichier Compose.
- Téléverser : téléversez un fichier Compose à partir du stockage local.
- Espace Web : sélectionnez un fichier Compose stocké dans le répertoire principal d’un domaine. Pour Espace Web, choisissez le domaine où se trouve le fichier. Pour Fichier Compose, accédez à l’emplacement du fichier Compose.
Vous pouvez déclarer et créer des conteneurs personnalisés. Tous les artefacts créés pendant le processus de création seront placés dans le répertoire principal du site web.
Pour en savoir plu sur le format de fichier Compose, consultez la documentation Docker.
Déployer des conteneurs Portainer dans Docker
Portainer est un logiciel de gestion de conteneurs qui facilite le déploiement de conteneurs et de stacks, l’affichage de l’état et des journaux d’un conteneur, la création d’utilisateurs et d’équipes, la sécurisation de vos environnements, etc.
Pour installer Portainer, allez sous Docker > Installer Portainer. Une fois l’installation terminée, pour gérer les conteneurs Portainer dans Docker, allez sous Docker > Accéder à Portainer.
Note: Portainer est actuellement une fonctionnalité bêta.
Pour en savoir plus sur les données dans les conteneurs, consultez la documentation Portainer.