Comment Créer un Conteneur Docker en 2024 pour Gérer Efficacement les Compartiments d’Images Docker
Si vous travaillez sur une application ou un service qui fonctionne sur plusieurs systèmes d’exploitation, Docker peut simplifier son processus de déploiement.
Avec la création de conteneurs Docker, vous pouvez lancer sans effort plusieurs applications ou services sur des systèmes comme l’hébergement de serveurs privés virtuels ou des machines dédiées. Docker est également léger, plus facile à déployer et offre de meilleures performances que les machines virtuelles.
Les conteneurs Docker possèdent toutes les dépendances nécessaires pour exécuter des applications, éliminant les problèmes de compatibilité. Créer des conteneurs Docker à partir de zéro est essentiel pour tout projet de développement déployé à l’aide de ce logiciel open-source.
Ce tutoriel vous guidera dans la création d’un conteneur Docker, en détaillant ses avantages dans le développement logiciel et les principales bonnes pratiques à suivre.
Sommaire
Qu’est-ce qu’un conteneur Docker ?
Un conteneur Docker est un package logiciel autonome contenant toutes les dépendances nécessaires pour exécuter une application spécifique sur différents systèmes d’exploitation. L’image Docker dicte toutes les instructions de configuration pour démarrer ou arrêter des conteneurs. Un nouveau conteneur est créé chaque fois qu’un utilisateur exécute une image.
Pourquoi utiliser des conteneurs Docker ?
Les conteneurs Docker sont une révolution pour les développeurs d’aujourd’hui. Avec l’isolation des conteneurs, vos applications peuvent fonctionner sur le même système d’exploitation tout en restant séparées des autres systèmes d’exploitation et conteneurs. Cette fonctionnalité assure des performances cohérentes dans les environnements de développement et de préproduction.
Pour les entreprises, les conteneurs Docker améliorent la vitesse de déploiement et maximisent l’utilisation des ressources système. En termes de ressources, le déploiement de conteneurs Docker nécessite nettement moins de mémoire qu’une machine virtuelle. De plus, leur nature portable rend possible la migration et la mise à l’échelle d’applications héritées.
Pour résumer, les conteneurs Docker optimisent le processus de développement, économisant un temps précieux et contribuant au succès économique de vos projets de développement d’applications.
Comment créer un conteneur Docker
Dans ce tutoriel, nous utiliserons un serveur privé virtuel (VPS) avec un système d’exploitation Ubuntu 22.04. Tout d’abord, assurez-vous que Docker est installé sur votre serveur. Si ce n’est pas le cas, suivez notre guide pour installer Docker sur Ubuntu.
Pour les clients VPS de Hostinger, vous pouvez profiter de notre template Ubuntu 22.04 64 bits avec Docker pour une installation automatique de Docker. Pour utiliser ce template, connectez-vous à votre tableau de bord VPS, puis naviguez vers Système d’exploitation et panneau → Système d’exploitation.
Sous le menu déroulant Applications, choisissez Ubuntu 22.04 64 bits avec Docker et cliquez sur Changer OS. Attendez que le processus d’installation se termine.
Pour en savoir plus sur ce template et ce qui le distingue des autres, lisez notre page dédiée à l’hébergement VPS Docker.
Pour ceux qui recherchent une gestion encore plus simplifiée de leurs conteneurs Docker, nous vous recommandons d’utiliser notre template VPS Portainer, disponible sur le même tableau de bord VPS. Ce template fournit une installation prête à l’emploi de Portainer, vous permettant de gérer vos conteneurs avec une interface utilisateur graphique avancée et conviviale.
Une fois l’installation terminée, suivez ces étapes de conteneurisation Docker pour exécuter votre application dans un environnement isolé.
1. Construire une image Docker
Une image Docker est un modèle pour votre conteneur. Elle contient tout le code, les bibliothèques et les dépendances dont votre application a besoin pour fonctionner.
Lors de l’exécution d’une image Docker, qui peut être privée ou partagée publiquement sur des plateformes comme Docker Hub, elle se transforme en un conteneur Docker.
Bien qu’il soit possible de créer une nouvelle image Docker, il est plus pratique d’utiliser une image de base et de la développer, car Docker Hub propose de nombreuses images de base facilement disponibles.
Tout d’abord, connectez-vous à votre VPS à l’aide d’un client SSH comme PuTTY. Ensuite, utilisez cette commande Linux pour lister toutes les images Docker sur votre système :
sudo docker images
Pour plus d’informations sur les images Docker existantes, exécutez la commande suivante :
sudo docker images --help
Utilisez l’option -q via l’invite de commande pour lister les ID numériques des images disponibles sur votre système :
sudo docker images -q
Pour lister toutes les images « non-dangling » qui ne sont pas taguées ou référencées par un nouveau conteneur, utilisez cette commande :
sudo docker images -f dangling=false
Pour ce tutoriel, nous allons récupérer une image basée sur MySQL. Notez que vous pouvez visiter la page de chaque image pour obtenir des informations supplémentaires.
Importez la nouvelle image dans le répertoire actuel en exécutant la commande suivante. N’oubliez pas de remplacer <nom de l’image ou id de l’image> par le nom ou l’ID de l’image choisie :
docker pull <nom de l’image ou id de l’image>
Une autre alternative pour créer une image Docker est d’utiliser Easypanel. Cet outil offre une interface graphique pour simplifier la gestion des images Docker, en particulier pour ceux qui ne sont pas familiers avec les opérations en ligne de commande.
EasyPanel facilite la création d’images Docker pour des applications écrites dans divers langages de programmation comme Node.js, Ruby, Python, PHP, Go et Java. Il automatise de nombreux processus impliqués dans la configuration des environnements et des dépendances.
Les plans d’hébergement VPS de Hostinger proposent un template Ubuntu 22.04 64 bits avec EasyPanel, qui peut être installé via le même menu Système d’exploitation sur votre tableau de bord VPS.
C’est votre choix d’utiliser soit un template basé sur Docker, soit un template installé avec EasyPanel. Sélectionnez celui qui correspond à votre expertise et aux exigences de votre projet, que ce soit Docker pour plus de contrôle ou EasyPanel pour la facilité d’utilisation.
2. Écrire un Dockerfile
Un Dockerfile est un fichier texte qui indique à Docker comment construire votre image. Il répertorie toutes les commandes Docker nécessaires pour assembler une image de conteneur. Utiliser un Dockerfile garantit que vos images sont construites de la même manière à chaque fois, rendant votre travail plus cohérent et plus facile à gérer.
Voici un exemple simple de template de Dockerfile :
FROM ubuntu:latest WORKDIR /app COPY . . RUN apt-get update && apt-get install -y curl CMD ["curl", "https://www.example.com"]
Dans un Dockerfile, chaque commande crée une nouvelle couche dans l’image Docker. Voici comment cela fonctionne, comme illustré dans notre exemple :
- FROM ubuntu:latest – cette commande extrait la dernière image parente d’Ubuntu et la définit comme couche de base. Les couches suivantes seront construites au-dessus.
- WORKDIR /app – définit le répertoire de travail du conteneur, créant une nouvelle couche qui sert de contexte pour les commandes subséquentes.
- COPY . . – copie les fichiers locaux dans le même dossier que le conteneur, créant une couche supplémentaire contenant vos fichiers de projet.
- RUN apt-get update && apt-get install -y curl – la commande run de Docker installe cURL dans le conteneur, ajoutant une nouvelle couche pour la liste des paquets mise à jour et le paquet cURL installé.
- CMD [“curl”, “https://www.domain.com”] – définit la commande par défaut pour exécuter l’application lorsque le conteneur démarre.
Tout changement que vous effectuez pendant que le conteneur fonctionne, comme ajouter ou modifier des fichiers, est écrit dans les couches inscriptibles respectives. De cette façon, vous pouvez effectuer des ajustements temporaires sans affecter l’image de base.
Conseil Pro
Un Dockerfile est facultatif lors de l’utilisation d’images préconstruites de Docker Hub. Cependant, il est nécessaire pour les personnaliser ou les étendre.
3. Construire le conteneur Docker
Si vous préparez un nouveau Dockerfile, naviguez dans le même répertoire que ce fichier et exécutez la commande build de Docker pour démarrer un nouveau processus de construction d’image. N’oubliez pas de remplacer l’option <nom de l’image ou id de l’image> par votre nom de tag.
docker build -t <nom de l’image ou id de l’image>
Démarre un nouveau conteneur à partir de l’image que vous venez de construire en utilisant la commande run de Docker :
docker run <nom de l’image ou id de l’image>
Sinon, exécutez une image préconstruite importée de Docker Hub. Utilisons l’image MySQL que nous avons précédemment récupérée :
docker run mysql
La stratification efficace des images est cruciale pour optimiser le temps de construction et l’utilisation des ressources. Chaque commande dans un Dockerfile crée une nouvelle couche, que Docker met en cache. Lorsque vous reconstruisez une image, Docker réutilise les couches inchangées, accélérant le processus de construction.
De plus, une stratification efficace peut réduire la taille de l’image, la rendant plus rapide à tirer, pousser ou déployer. Cette pratique est particulièrement vitale pour les entreprises nécessitant des déploiements rapides pour rester compétitives.
4. Exécuter et gérer les conteneurs
Une fois l’image du conteneur créée, démarrez-en une en utilisant la commande run de Docker. Remplacez <nom du conteneur> par le nom que vous avez choisi. Ici, mysql bash représente le conteneur que nous allons exécuter.
docker run --name <nom du conteneur> -it mysql bash
Utilisez la commande Docker ps avec l’option -a pour lister les conteneurs en cours d’exécution sur votre système. Ajoutez sudo au début de la commande pour l’exécuter avec des permissions root.
docker ps -a
Utilisez la commande Docker suivante pour voir le processus principal d’un conteneur :
docker top MyContainer
Pour mapper des ports entre l’hôte et le conteneur, utilisez l’option -p à côté de la commande run de docker :
docker run -p host_port:container_port <nom de l’image>
Le mappage des ports expose l’application de votre conteneur à l’extérieur, permettant l’accès depuis votre machine hôte. Ce processus est vital pour les serveurs web, les bases de données ou toute application qui se connecte à des systèmes externes.
Pour attacher un volume pour un stockage persistant, utilisez l’option -v :
docker run -v host_directory:container_directory <nom de l’image>
Attacher des volumes rend votre configuration de conteneur plus robuste, plus facile à gérer et plus performante. Vos données restent intactes même si la configuration du conteneur Docker est arrêtée, supprimée ou mise à jour. De plus, les volumes peuvent être partagés entre divers conteneurs, simplifiant la gestion des données dans des configurations multi-conteneurs.
Conseil Pro
Utilisez les commandes CLI Docker ou l’API Docker pour gérer les volumes.
Vous pouvez limiter les ressources comme le CPU et la mémoire en utilisant les options –cpus et –memory. L’exemple suivant limite le conteneur à un maximum de 0,5 CPU et 500 Mo de RAM.
docker run --cpus=0.5 --memory=500m <nom de l’image>
Émettez la commande suivante pour arrêter le conteneur en cours d’exécution :
docker stop MyContainer
La commande suivante présente des informations supplémentaires sur le conteneur, y compris l’ID du conteneur (container id), l’utilisation du CPU et de la mémoire :
docker stats
Pour terminer le conteneur Docker, entrez la commande suivante dans la ligne de commande :
docker kill MyContainer
Bonnes pratiques pour les conteneurs Docker
Voici quelques bonnes pratiques pour garantir un processus de conteneurisation Docker efficace.
Utilisez Kodee, l’assistant IA de Hostinger
L’efficacité est essentielle lors de la création de conteneurs Docker. Heureusement, les clients de Hostinger peuvent utiliser Kodee, notre assistant IA VPS pour rationaliser le processus. En fournissant des guides d’installation et en recommandant les commandes appropriées, Kodee simplifie vos tâches de gestion VPS.
Cette fonctionnalité est accessible depuis le panneau gauche de votre tableau de bord VPS. Vous pouvez poser des questions sur le processus de conteneurisation Docker, telles que « comment mettre à jour dynamiquement le conteneur lorsque l’image de base change ».
Kodee vous fournira une réponse complète, y compris les commandes ou scripts pertinents.
Assurez-vous que les conteneurs restent légers
Des conteneurs plus petits sont plus rapides, plus efficaces et plus sécurisés. Ils se déploient rapidement, utilisent moins de ressources et maximisent l’utilisation du matériel. Avec moins de composants, ils réduisent la surface d’attaque, améliorant ainsi la sécurité globale.
Suivez ces conseils pour créer des conteneurs légers :
- Optez pour des images de base légères – si vous avez plusieurs images similaires, créez une image de base avec des composants partagés et créez des images Docker personnalisées à partir de celle-ci.
- Utilisez des constructions multi-étapes – incluez uniquement les composants essentiels comme les artefacts et l’environnement dans l’image finale.
- Supprimez les fichiers inutiles – après avoir installé les paquets, optimisez les performances de votre application Docker en supprimant les images Docker inutilisées, le cache et les fichiers temporaires.
- Soyez spécifique dans les commandes – consolidez les commandes en une seule ligne run pour réduire les couches d’image. En outre, évitez d’installer des paquets recommandés ou suggérés qui ne sont pas essentiels.
Utilisez des images officielles
Utiliser des images officielles de Docker Hub pour la construction d’images Docker garantit une base sécurisée, optimisée et fiable pour vos conteneurs. Elles sont souvent adaptées à des cas d’utilisation spécifiques, offrant un point de départ efficace pour développer des applications robustes et efficaces.
Du point de vue de la sécurité, les images officielles subissent des contrôles de sécurité approfondis et sont rapidement corrigées pour les vulnérabilités. Comme elles sont largement utilisées, les images officielles sont bien testées et compatibles avec diverses configurations et plateformes.
Limitez les permissions des conteneurs
Exécuter des conteneurs avec des privilèges supplémentaires pose un risque de sécurité. Un pirate peut prendre le contrôle complet de votre système si un conteneur est compromis tout en s’exécutant en tant que root.
Pour maintenir la sécurité du système, n’accordez que les permissions nécessaires à votre conteneur. Créez et utilisez un utilisateur non-root pour exécuter votre application à l’intérieur du conteneur. Vous pouvez également définir votre conteneur en mode lecture seule pour éviter les modifications indésirables.
Sécurisez les informations sensibles
Lorsque le conteneur Docker démarre, vous pouvez configurer les variables d’environnement en fonction de l’application ou du service exécuté à l’intérieur. Certaines des variables les plus courantes incluent les identifiants de base de données, les paramètres d’application et les valeurs secrètes pour l’authentification.
Les variables d’environnement gardent les données sensibles séparées de votre code et de votre image, les cachant à ceux qui ont accès aux deux. Utiliser des variables d’environnement rend également votre configuration plus flexible, car vous pouvez facilement changer les données sans modifier le Dockerfile ou reconstruire l’image.
Tirez parti de l’orchestration des conteneurs
Les outils d’orchestration de conteneurs comme Docker Compose et Kubernetes simplifient la gestion des applications multi-conteneurs. Ils rationalisent le déploiement en vous permettant de lancer plusieurs conteneurs avec une seule commande.
Par exemple, vous pouvez utiliser Docker Compose pour installer WordPress avec tous les composants nécessaires, comme un serveur web et une base de données.
Les outils d’orchestration gèrent également la mise à l’échelle, ajustant automatiquement les services à mesure que le trafic augmente. Ils distribuent le trafic réseau entrant à travers plusieurs conteneurs, améliorant la performance et la fiabilité.
Conclusion
Docker est un outil inestimable pour les développeurs et les entreprises d’aujourd’hui, offrant un environnement cohérent, des déploiements rationalisés et une utilisation optimisée des ressources. Savoir comment en construire un aide à rendre votre cycle de développement plus efficace et sécurisé.
Nous avons couvert les étapes pour créer un conteneur Docker à partir d’une image et les commandes Docker courantes pour compléter le processus. Vous avez également appris les meilleures pratiques pour une gestion efficace des conteneurs Docker sur le serveur privé virtuel Ubuntu 22.04.
Si vous avez des questions sur la création de conteneurs Docker, laissez un commentaire ci-dessous.
FAQ sur la création d’un conteneur Docker
Cette section couvre les questions fréquemment posées sur la création de conteneurs Docker.
Quelle est la différence entre une image Docker et un conteneur Docker ?
Une image Docker est un modèle pour créer un conteneur, contenant le code, les bibliothèques et les dépendances de l’application. D’autre part, un conteneur Docker est une version exécutable de l’image. Lorsque vous démarrez un conteneur à partir d’une image, le système crée un environnement actif où l’application peut fonctionner et interagir.
Une image Docker peut-elle avoir plusieurs conteneurs ?
Oui, vous pouvez utiliser une seule image Docker pour créer plusieurs conteneurs. Chaque conteneur fonctionne indépendamment et possède son propre ensemble de ressources et de paramètres. Cette pratique vous permet d’augmenter l’échelle ou d’exécuter des applications dans divers environnements sans créer une image Docker à chaque fois, économisant ainsi du temps et des ressources.
Peut-on modifier les images Docker ?
Les images Docker sont composées de couches en lecture seule, donc vous ne pouvez pas les modifier directement. Pour effectuer des changements, mettez à jour le Dockerfile ou les fichiers source et construisez une nouvelle image avec la commande de construction Docker. Comme les conteneurs existants ne se mettent pas à jour automatiquement, vous devez les arrêter et en créer de nouveaux à partir de l’image créée.