Différences : 1. Les conteneurs Docker fournissent une isolation basée sur les processus, tandis que les machines virtuelles VM fournissent une isolation complète des ressources ; 2. Docker utilise le noyau du système d'exploitation hôte, tandis que les machines virtuelles VM utilisent des noyaux indépendants 3. Démarrage Docker La vitesse ; est au deuxième niveau et VM est au niveau minute ; 4. L'intégration de Docker est meilleure que celle de VM.
L'environnement d'exploitation de ce tutoriel : système linux5.9.8, version docker-1.13.1&&VMware Workstation16.0.0.16894299, ordinateur Dell G3.
1. Différence essentielle :
VM (VMware) crée une couche virtuelle, une machine virtuelle basée sur la machine hôte et la machine hôte en fonctionnement système d'exploitation systématisé et entrepôt virtualisé, puis installez l'application
Container (conteneur Docker) crée un moteur Docker sur la machine hôte et le système d'exploitation de la machine hôte, puis installe l'application en fonction du moteur.
Les conteneurs Docker offrent une isolation basée sur les processus, tandis que les machines virtuelles VM offrent une isolation complète des ressources. Les conteneurs utilisent le noyau du système d'exploitation hôte, tandis que les machines virtuelles utilisent un noyau distinct.
2. Différences d'utilisation :
Taille :
1. Mémoire occupée par Ubuntu dans la machine virtuelle : La mémoire occupée par le fichier image Ubuntu dans le conteneur Docker :
Démarrage :
Docker crée le moteur Docker sur le système d'exploitation de la machine hôte et appelle les ressources matérielles directement sur le système d'exploitation de la machine hôte au lieu de virtualiser le système d'exploitation et les ressources matérielles, l'opération est donc rapide. Il s'agit en fait d'installer une machine virtuelle Ubuntu et d'extraire un fichier miroir Docker Ubuntu. Il est évident que l'exécution prend plus de 2 minutes, alors que Docker ne prend que 2 secondes.
Intégration :
Démarrage rapide
Les utilisateurs peuvent « Dockeriser » leurs propres programmes en quelques minutes seulement. Docker s'appuie sur le modèle "copie sur écriture", ce qui permet de modifier très rapidement l'application. On peut dire qu'il atteint le domaine du "le code est modifié à votre guise". Ensuite, vous pouvez créer un conteneur pour exécuter votre application. La plupart des conteneurs Docker démarrent en moins d'une seconde. Étant donné que la surcharge de l'hyperviseur est supprimée, les conteneurs Docker ont des performances élevées. Dans le même temps, davantage de conteneurs peuvent être exécutés sur le même hôte, permettant aux utilisateurs d'utiliser autant que possible les ressources système.2)Classification logique des responsabilités
Avec Docker, les développeurs ne doivent se soucier que des applications exécutées dans les conteneurs, tandis que le personnel d'exploitation et de maintenance n'a qu'à se soucier de la façon de gérer les conteneurs. L'objectif de la conception de Docker est d'améliorer la cohérence entre l'environnement de développement dans lequel les développeurs écrivent le code et l'environnement de production dans lequel les applications sont déployées. Réduisant ainsi le genre de « tout est normal pendant le développement, ce doit être un problème d'exploitation et de maintenance (l'environnement de test est normal, s'il y a un problème après la mise en ligne, ce doit être un problème d'exploitation et de maintenance) »3)Cycle de vie de développement rapide et efficace
L'un des objectifs de Docker est de raccourcir le cycle du code depuis le développement, les tests jusqu'au déploiement et à l'exploitation en ligne, rendant votre application portable, facile à créer et à collaborer. (En termes simples, Docker est comme une boîte qui peut contenir de nombreux objets. Si vous avez besoin de ces objets, vous pouvez les sortir directement de la grande boîte sans les sortir un par un de la boîte.)4)Orienté service l'architecture est encouragée
Docker encourage également l'architecture orientée services et l'architecture des microservices. Docker recommande qu'un seul conteneur n'exécute qu'une seule application ou processus, formant ainsi un modèle d'application distribué. Dans ce modèle, les applications ou les services peuvent être représentés comme une série de conteneurs interconnectés en interne, permettant ainsi un déploiement distribué, une extension ou un débogage de l'application. l'application devient très simple, tout en améliorant également l'introspection du programme. (Bien sûr, vous pouvez exécuter plusieurs applications dans un seul conteneur)Apprentissage recommandé : "Tutoriel vidéo Docker"
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!