Docker est un ensemble de produits de plates-formes en tant que service (PaaS) qui utilisent la virtualisation au niveau du système d'exploitation pour fournir des logiciels dans des packages appelés conteneurs. Les conteneurs sont isolés les uns des autres et regroupent leurs propres logiciels, bibliothèques et fichiers de configuration ; ils peuvent communiquer entre eux via des canaux bien définis. Tous les conteneurs sont exécutés par un seul noyau de système d'exploitation et utilisent donc moins de ressources qu'une machine virtuelle.
Table des matières
- Qu’est-ce que Docker ?
- Pourquoi Docker est-il populaire ?
- Qu'est-ce qu'un Dockerfile ?
- Qu'est-ce que l'architecture Docker et comment fonctionne Docker ?
- Qu’est-ce que Docker Image ?
- Qu’est-ce que le conteneur Docker ?
- Qu’est-ce que Docker Hub ?
- Qu’est-ce que Docker Compose ?
- Comment télécharger Docker Bureau ?
- Commandes Docker
- Moteur Docker
- Pourquoi utiliser Docker ?
- Qu'est-ce que Docker pour AWS ?
- Différence entre les conteneurs Docker et les machines virtuelles
- Installer Docker sur Ubuntu
- Exemple d'exemple : conteneurisation d'une application à l'aide de Docker
- Exemple d'exemple pour transférer une image vers Docker Hub
- Récupérer et exécuter l'image depuis Docker Hub
- Avantages de Docker
- Alternatives à Docker
- Sécurité Docker
Qu’est-ce que Docker ?
Docker est un logiciel open source conteneurisation plate-forme grâce à laquelle vous pouvez regrouper votre application et toutes ses dépendances dans une unité standardisée appelée conteneur. Les conteneurs sont légers, ce qui les rend portables et ils sont isolés de l'infrastructure sous-jacente et les uns des autres conteneurs. Vous pouvez exécuter le image du menu fixe comme un conteneur Docker dans n'importe quelle machine sur laquelle Docker est installé sans dépendre du système opérateur.
Pourquoi Docker est-il populaire ?
Docker a gagné sa popularité en raison de son impact sur le développement et le déploiement de logiciels. Voici quelques-unes des principales raisons pour lesquelles Docker est devenu populaire :
- Portabilité: Docker aide les développeurs à regrouper leurs applications avec toutes les dépendances dans un seul conteneur léger. Il permet de garantir des performances cohérentes dans les différents environnements informatiques.
- Reproductibilité : En encapsulant les applications avec leurs dépendances dans un conteneur, il garantit que les configurations logicielles restent cohérentes dans les environnements de développement, de test et de production.
- Efficacité: Docker, grâce à son architecture basée sur des conteneurs, optimise l'utilisation des ressources. Il permet aux développeurs d'exécuter plusieurs applications isolées sur un seul système hôte.
- Évolutivité : Les fonctionnalités d'évolutivité de Docker ont aidé les développeurs à faciliter la gestion de leurs applications au moment de l'augmentation des charges de travail.
Qu'est-ce qu'un Dockerfile ?
Le Fichier Docker utilise DSL (Domain Specific Language) et contient des instructions pour générer une image Docker. Dockerfile définira les processus pour produire rapidement une image. Lors de la création de votre application, vous devez créer un Dockerfile dans l'ordre puisque le Démon Docker exécute toutes les instructions de haut en bas.
(Le démon Docker, souvent appelé simplement Docker, est un service en arrière-plan qui gère les conteneurs Docker sur un système.)
liste de tableaux de tri Java
- Il s'agit d'un document texte qui contient les commandes nécessaires qui, lors de l'exécution, aident à assembler une image Docker.
- L'image Docker est créée à l'aide d'un Dockerfile.

Pour en savoir plus sur le Dockerfile, reportez-vous au Docker – Concept de Dockerfile .
Qu'est-ce que l'architecture Docker et comment fonctionne Docker ?
Docker utilise une architecture client-serveur. Le client Docker communique avec le démon Docker qui aide à créer, exécuter et distribuer les conteneurs Docker. Le client Docker s'exécute avec le démon sur le même système ou nous pouvons connecter le client Docker au démon Docker à distance. À l'aide de l'API REST sur un socket UNIX ou un réseau, le client Docker et le démon interagissent les uns avec les autres. Pour en savoir plus sur le fonctionnement de Docker, reportez-vous au Architecture de Docker .
Qu’est-ce que Docker Image ?
Il s'agit d'un fichier composé de plusieurs couches, utilisé pour exécuter du code dans un conteneur Docker. Il s'agit d'un ensemble d'instructions utilisées pour créer des conteneurs Docker. Docker Image est un package logiciel exécutable qui comprend tout ce dont vous avez besoin pour exécuter une application. Cette image indique comment un conteneur doit être instancié, déterminant quels composants logiciels seront exécutés et comment. Docker Container est un environnement virtuel qui regroupe le code d'application avec toutes les dépendances requises pour exécuter l'application. L'application s'exécute rapidement et de manière fiable d'un environnement informatique à un autre.
Qu’est-ce que le conteneur Docker ?
Le conteneur Docker est une instance d'exécution d'une image. Permet aux développeurs de regrouper des applications avec tous les éléments nécessaires, tels que des bibliothèques et autres dépendances. Les conteneurs Docker sont des instances d'exécution d'images Docker. Les conteneurs contiennent l'ensemble du kit requis pour une application, afin que l'application puisse être exécutée de manière isolée. Par exemple, supposons qu'il existe une image du système d'exploitation Ubuntu avec NGINX SERVER lorsque cette image est exécutée avec la commande docker run, un conteneur sera alors créé et NGINX SERVER fonctionnera sur le système d'exploitation Ubuntu.
Qu’est-ce que Docker Hub ?
Docker Hub est un service de référentiel et il s'agit d'un service basé sur le cloud dans lequel les utilisateurs envoient leurs images de conteneur Docker et extraient également les images de conteneur Docker du Docker Hub à tout moment ou n'importe où via Internet. Généralement, cela facilite la recherche et la réutilisation des images. Il fournit des fonctionnalités telles que la possibilité de transférer vos images sous forme de registre privé ou public où vous pouvez stocker et partager des images Docker.
L'équipe DevOps utilise principalement le Docker Hub. Il s'agit d'un outil open source et disponible gratuitement pour tous les systèmes d'exploitation. C'est comme un stockage où nous stockons les images et extrayons les images lorsque cela est nécessaire. Lorsqu'une personne souhaite pousser/extraire des images du Docker Hub, elle doit avoir une connaissance de base de Docker. Discutons des exigences de l'outil Docker.
Qu’est-ce que Docker Compose ?
Docker Compose exécutera une application multi-conteneurs basée sur YAML. Le fichier YAML comprend toutes les configurations nécessaires au déploiement de conteneurs Docker Composer , qui est intégré à Essaim de Dockers , et fournit des instructions pour la création et le déploiement de conteneurs. Avec Docker Compose, chaque conteneur est construit pour s'exécuter sur un seul hôte.
Comment télécharger Docker Bureau ?
Docker Desktop fournit une interface graphique pour fonctionner sur les conteneurs Docker, les images Docker et les réseaux Docker. Le bureau Docker fournit un environnement séparé qui contient Docker Engine, Docker CLI, Docker Compose, Kubernetes, et d'autres outils nécessaires pour créer, expédier et exécuter les applications sous forme de conteneurs, ce qui les rend plus conviviales. Pour en savoir plus sur la façon d'installer Docker Desktop, reportez-vous à Exemple d’image du bureau Docker.
Commandes Docker
En introduisant les commandes essentielles de Docker, Docker est devenu un logiciel puissant permettant de rationaliser le processus de gestion des conteneurs. Il contribue à garantir des flux de travail de développement et de déploiement transparents. Voici quelques-unes des commandes Docker couramment utilisées :
Shreya Ghoshal, premier mari
- Exécution Docker : Il est utilisé pour lancer les conteneurs à partir d'images, en spécifiant les options et les commandes d'exécution.
- Extraction Docker : Il récupère les images de conteneurs du registre de conteneurs comme Docker Hub vers la machine locale.
- Docker PS : Il aide à afficher les conteneurs en cours d'exécution ainsi que leurs informations importantes telles que l'ID du conteneur, l'image utilisée et l'état.
- Arrêt Docker : Cela aide à arrêter les conteneurs en cours d’exécution en arrêtant progressivement les processus qu’ils contiennent.
- Démarrage Docker : Cela aide à redémarrer les conteneurs arrêtés, en reprenant leurs opérations à partir de l'état précédent.
- Connexion Docker : Il est utile de se connecter au registre Docker permettant l'accès aux référentiels privés.
Pour en savoir plus sur les commandes Docker, reportez-vous au Docker – Commandes d’instructions .
Moteur Docker
Le logiciel qui héberge les conteneurs s'appelle Docker Engine. Docker Engine est une application basée sur client-serveur. Le moteur Docker comporte 3 composants principaux :
- Serveur: Il est responsable de la création et de la gestion des images, des conteneurs, des réseaux et des volumes Docker sur Docker. C'est ce qu'on appelle un processus démon.
- API REST : Il spécifie comment les applications peuvent interagir avec le serveur et lui indique quoi faire.
- Client: Le client est une interface de ligne de commande (CLI) Docker, qui nous permet d'interagir avec Docker à l'aide des commandes Docker.
Pourquoi utiliser Docker ?
Docker peut être utilisé pour regrouper l'application et ses dépendances, ce qui rend la livraison du code légère et facile, plus rapide et plus fiable. Docker simplifie grandement l'exécution de l'application dans l'environnement de production. Le conteneur Docker peut être indépendant de la plate-forme si le moteur Docker est installé sur la machine.
- Efficacité des ressources : Docker aide à maximiser l'utilisation des ressources en exécutant plusieurs conteneurs sur un seul hôte. Cela contribue à réduire les coûts d’infrastructure et à améliorer l’efficacité.
- Contrôle de version: Il simplifie la gestion des versions des applications et de leurs dépendances, garantissant la cohérence et facilitant la collaboration entre les équipes.
- Agilité des microservices : Il permet l’adoption d’une architecture de microservices, favorisant le développement d’applications agiles d’évolutivité, de flexibilité et d’isolation des pannes.
Qu'est-ce que Docker pour AWS ?
Docker est l'outil le plus puissant pour exécuter l'application sous forme de conteneurs. Les conteneurs Docker sont légers et peuvent être exécutés sur n’importe quel système d’exploitation.
AWS fournit le service Amazon Elastic Container ( AmazonECS ), il s'agit d'un service de conteneur entièrement géré grâce auquel vous pouvez déployer, mettre à l'échelle et gérer les conteneurs Docker. Amazon ECS est la plate-forme la plus fiable en termes de performances et peut également être intégrée aux autres services AWS tels que l'équilibrage de charge, la découverte de services et la surveillance de l'état des conteneurs. Pour en savoir plus sur Amazon Elastic Container Service (Amazon ECS) .
Différence entre les conteneurs Docker et les machines virtuelles
Voici les différences entre les conteneurs Docker et les machines virtuelles :
Conteneurs Docker | Machines virtuelles |
---|---|
Les conteneurs Docker contiennent des binaires, des bibliothèques et des fichiers de configuration ainsi que l'application elle-même. | Les machines virtuelles (VM) s'exécutent sur des hyperviseurs, ce qui permet à plusieurs machines virtuelles de s'exécuter sur une seule machine avec son propre système d'exploitation. |
Ils ne contiennent pas de système d'exploitation invité pour chaque conteneur et s'appuient sur le noyau du système d'exploitation sous-jacent, ce qui rend les conteneurs légers. | Chaque VM possède sa propre copie d'un système d'exploitation ainsi que l'application et les binaires nécessaires, ce qui la rend considérablement plus grande et nécessite plus de ressources. |
Les conteneurs partagent des ressources avec d'autres conteneurs dans le même système d'exploitation hôte et assurent une isolation des processus au niveau du système d'exploitation. | Ils assurent une isolation des processus au niveau matériel et sont lents à démarrer. |
Installer Docker sur Ubuntu
Les étapes suivantes vous guident dans l'installation de Docker sur Ubuntu :
Étape 1 : Supprimer l'ancienne version de Docker
- Exécutez la commande suivante pour supprimer l'ancienne version du logiciel Docker :
$ sudo apt-get remove docker docker-engine docker.io containerd runc>
Étape 2 : Installation du moteur Docker
- La commande suivante est utilisée pour l'installation du moteur Docker :
$ sudo apt-get update $ sudo apt-get install ca-certificates curl gnupg lsb-release $ sudo mkdir -p /etc/apt/keyrings $ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg $ echo 'deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable' | sudo tee /etc/apt/sources.list.d/docker.list>/dev/null $ sudo apt-get update $ sudo apt-get install docker-ce docker-ce-cli containersd.io docker-compose-plugin $ sudo groupadd docker $ sudo usermod -aG docker $USER>
Étape 3 : Vérifier l'installation de Docker
- Vérifiez si Docker est installé avec succès sur votre système en essayant d'exécuter un conteneur avec la commande suivante :
$ sudo docker run hello-world>
Pour plus de détails sur l'installation de Docker sur Ubuntu, reportez-vous à ceci - Article
qu'est-ce que le prologue
Exemple d'exemple : conteneurisation d'une application à l'aide de Docker
Les étapes suivantes guident la conteneurisation de l'application à l'aide de Docker :
Étape 1 : Créer un fichier Dokcerfile et une application Python
- Créez un dossier contenant 2 fichiers (fichier Dockerfile et main.py)
Étape 2 : Développer le code Python
- Modifiez main.py avec le code ci-dessous, ou bien vous pouvez essayer de développer votre propre code python.
#!/usr/bin/env python3 print('Docker and GFG rock!')>
Étape 3 : Développer un fichier Docker
- Modifiez Dockerfile avec les instructions ci-dessous pour développer le Dockerfile :
FROM python:latest COPY main.py / CMD [ 'python', './main.py' ]>
Étape 4 : Créer une image Docker
- Une fois que vous avez créé et modifié le fichier main.py et le Dockerfile, créez votre image contenant votre application en exécutant la commande suivante :
$ sudo docker build -t python-test .>
- L'option '-t' permet de définir le nom de votre image. 'python-test' est le nom que nous avons choisi pour l'image.
Étape 5 : Exécuter le conteneur Docker
- Une fois l'image créée, votre code est prêt à être lancé.
$ sudo docker run python-test>
Pour en savoir plus sur cette conteneurisation de votre application, reportez-vous à ceci – Article
Exemple d'exemple pour transférer une image vers Docker Hub
Les étapes suivantes vous guident pour transférer une image vers Dockerhub :
Étape 1: Créez un compte sur Docker Hub ou utilisez-en un existant si vous en avez déjà un.
Étape 2: Cliquez sur le bouton Créer un référentiel, mettez le nom du fichier et cliquez sur Créer.
Étape 3: Nous allons maintenant marquer notre image et la transférer vers le référentiel Docker Hub que nous venons de créer.
algorithme de tri rapide
- Maintenant, exécutez la commande ci-dessous pour répertorier les images Docker :
$ docker images>
- Ce qui précède nous donnera ce résultat
REPOSITORY TAG IMAGE_ID CREATED SIZE afrozchakure/python-test latest c7857f97ebbd 2 hours ago 933MB>
- L’ID de l’image est utilisé pour baliser l’image. La syntaxe pour baliser l'image est :
docker tag /python-test:latest $ docker tag c7857f97ebbd afrozchakure/python-test:latest>
Étape 4: Transférer l'image vers le référentiel Docker Hub
$ docker push afrozchakure/python-test>
Pour en savoir plus sur la publication des images sur Dockerhub, reportez-vous à ceci : Article
Récupérer et exécuter l'image depuis Docker Hub
1. Pour supprimer toutes les versions d'une image particulière de notre système local, nous utilisons l'ID de l'image correspondant.
$ docker rmi -f af939ee31fdc>
2. Maintenant, exécutez l'image, elle la récupérera depuis le hub Docker si elle n'existe pas sur votre machine locale.
$ docker run afrozchakure/python-test>
Avantages de Docker
Voici quelques-uns des avantages de Docker :
- Portabilité: Installations Docker avec création de conteneurs portables légers qui peuvent être impossibles sur n'importe quelle machine, quel que soit le système d'exploitation sous-jacent.
- Isolement: Docker via les conteneurs offre un haut niveau d'isolation en permettant aux applications de s'exécuter indépendamment les unes des autres, en résolvant les problèmes qu'un conteneur n'a pas d'impact sur l'autre.
- Reproductibilité : Avec, les développeurs Docker peuvent facilement regrouper leurs applications et leurs dépendances dans des images réutilisables. Il permet des builds cohérents et reproductibles dans les environnements de développement, de test et de production.
- Intégration DevOps : Il favorise la collaboration et l'automatisation tout au long du cycle de vie du développement logiciel afin de gérer les charges de travail croissantes.
Alternatives à Docker
Voici les alternatives de Docker :
- Tamisé : Offre un moteur de conteneur compatible Docker en mettant l'accent sur la sécurité et la compatibilité, idéal pour les environnements dans lesquels Docker n'est pas préféré ou disponible.
- rt: Un runtime de conteneur léger développé par CoreOS, conçu pour la simplicité, la sécurité et la composabilité, offrant une alternative au runtime de conteneur de Docker.
- LXC (conteneurs Linux) : Fournit une virtualisation au niveau du système d'exploitation pour exécuter plusieurs systèmes Linux isolés (conteneurs) sur un seul hôte, offrant une alternative légère à Docker pour certains cas d'utilisation.
- conteneur : Un environnement d'exécution de conteneur principal standard de l'industrie développé par Docker, Inc., offrant une plate-forme minimale et stable pour créer des applications conteneurisées, souvent utilisé comme alternative de niveau inférieur à Docker pour les systèmes d'orchestration de conteneurs plus avancés tels que Kubernetes.
Sécurité Docker
Voici quelques informations sur la sécurité de Docker :
- Isolement : Les conteneurs Docker fournissent une forte isolation assurant les applications et traitant leur exécution.
- Infrastructure immuable : Il favorise l'utilisation d'une infrastructure immuable, où les conteneurs sont construits à partir d'images immuables dont la version est contrôlée.
- Contraintes de ressources: Il vous permet de définir les contraintes de ressources pour les conteneurs telles que les limites de CPU et de mémoire.
- Analyse de sécurité : Il fournit les outils d'analyse de sécurité intégrés qui vous permettent d'analyser les images du conteneur à la recherche de vulnérabilités et de logiciels malveillants connus avant le déploiement.
Conclusion
Vous avez donc découvert les bases de Docker, la différence entre les machines virtuelles et les conteneurs Docker ainsi que certaines terminologies courantes dans Docker. Nous avons également procédé à l'installation de Docker sur nos systèmes. Nous avons créé une application à l'aide de Docker et transféré notre image vers Docker Hub. Enfin, nous avons appris comment supprimer une image particulière de notre système local, puis extraire l'image de Docker Hub si elle n'existe pas localement.
Docker – FAQ
Qu’est-ce que Docker Hub en bref ?
Docker Hub est un registre public dans lequel les utilisateurs/développeurs peuvent stocker et partager des images système créées par eux et leur permettre d'accéder et de réutiliser facilement les images pour d'autres développeurs de logiciels.
Que faut-il pour utiliser Docker Hub ?
Pour utiliser Docker Hub, l'utilisateur doit disposer d'un compte sur la plateforme Docker Hub. Si vous n'avez pas de compte sur Docker Hub, vous pouvez en créer un en vous inscrivant. Une fois que vous avez un compte sur Docker, vous pouvez effectuer des opérations telles que pousser et extraire des images vers et depuis Docker Hub.
Que sont les journaux Docker ?
Le démon Docker et les conteneurs Docker généreront les journaux Docker sous forme de messages texte qui vous aideront à résoudre davantage les problèmes, à surveiller les performances de vos applications et à recueillir des informations sur l'état de votre environnement Docker.
Qu’est-ce que Docker Build ?
Docker build est une commande utilisée pour créer l'image Docker à l'aide du Dockerfile.
Qu’est-ce que Docker Ubuntu ?
Docker Ubuntu est le terme utilisé pour utiliser le service Docker avec les systèmes d'exploitation basés sur Ubuntu. L'exécution de Docker est la mieux adaptée à la distribution Linux populaire Ubuntu.