


Docker fonctionne-t-il sur une machine physique ou une machine virtuelle ?
Docker peut fonctionner soit sur une machine physique, soit sur une machine virtuelle ; qu'il s'agisse d'une machine virtuelle ou d'une machine physique, il s'agit d'une méthode de livraison de matériel et d'infrastructure, qui est essentiellement un niveau, et les conteneurs sont principalement utilisés pour résoudre une série de problèmes centrés sur les logiciels, l'exécution de conteneurs sur des machines virtuelles et des machines physiques est réalisable.
L'environnement d'exploitation de ce tutoriel : système linux7.3, docker version 19.03, ordinateur Dell G3.
Docker peut s'exécuter sur une machine physique ou une machine virtuelle
Le conteneur Docker peut s'exécuter sur une machine virtuelle ou une machine physique
Qu'il s'agisse d'une machine virtuelle ou d'une machine physique, il s'agit d'une méthode de livraison de matériel/ l'infrastructure, essentiellement, est au même niveau ; et les conteneurs résolvent principalement une série de problèmes centrés sur les logiciels
À proprement parler, les conteneurs et les machines virtuelles ne sont pas au même niveau, ils sont un ensemble packagé de logiciels + environnement.
Exécuter des conteneurs sur des machines virtuelles est devenu une pratique pratique. Par exemple, le service de conteneurs d'AWS ne s'exécute que sur des machines virtuelles.
Le démon Docker peut communiquer directement avec le système d'exploitation principal pour allouer des ressources à chaque conteneur Docker ; il peut également isoler le conteneur du système d'exploitation principal et isoler chaque conteneur les uns des autres. Docker est souvent utilisé pour isoler différentes applications, telles que le front-end, le back-end et la base de données.
Connaissances étendues :
Le démon Docker peut communiquer directement avec le système d'exploitation principal pour allouer des ressources aux conteneurs Docker individuels ; il peut également isoler les conteneurs du système d'exploitation principal et isoler les conteneurs individuels les uns des autres. Docker est souvent utilisé pour isoler différentes applications, telles que le front-end, le back-end et la base de données.
Docker présente les caractéristiques de compacité, de migration et de déploiement rapides et de fonctionnement efficace, mais son isolement est pire que la virtualisation de serveur : différents conteneurs appartiennent à différentes feuilles de route (différentes instances d'application exécutées sur Docker) et sont indépendants les uns des autres (isolés) . Mais il est géré par le même gestionnaire d'entrepôt (noyau du système d'exploitation hôte), de sorte que le gestionnaire d'entrepôt peut voir les informations pertinentes de tous les conteneurs (le noyau du système d'exploitation étant partagé, les informations pertinentes seront partagées).
Les machines virtuelles sont plus efficaces pour isoler complètement l'ensemble de l'environnement d'exploitation. Par exemple, les fournisseurs de services cloud utilisent généralement la technologie des machines virtuelles pour isoler les différents utilisateurs. Une machine virtuelle met quelques minutes à démarrer, tandis qu'un conteneur Docker peut démarrer en millisecondes. Sans un système d'exploitation volumineux, Docker peut économiser beaucoup d'espace disque et d'autres ressources système.
La virtualisation du serveur revient à établir plusieurs "petits docks" indépendants - des entrepôts (machines virtuelles) sur le dock (hôte physique et couche de virtualisation). Il dispose d’un espace totalement indépendant (isolé) et appartient à différents clients (propriétaires de machines virtuelles). Chaque entrepôt possède son propre gestionnaire d'entrepôt (le noyau du système d'exploitation de la machine virtuelle actuelle) et ne peut pas gérer d'autres entrepôts. Il n’y a aucun partage d’informations.
Par conséquent, nous devons adopter différentes méthodes en fonction de différents scénarios et besoins d'application, en utilisant la technologie Docker ou en utilisant la technologie de virtualisation de serveur.
Comparaison des principes de mise en œuvre de Docker et des machines virtuelles
Les figures suivantes montrent respectivement les cadres de mise en œuvre des machines virtuelles et de Docker.
Comparez les différences entre les deux images. La couche Guest OS et la couche Hypervisor de la machine virtuelle dans l'image de gauche sont remplacées par la couche Docker Engine dans Docker. Le système d'exploitation invité d'une machine virtuelle est le système d'exploitation installé sur la machine virtuelle, qui est un noyau de système d'exploitation complet ; la couche hyperviseur de la machine virtuelle peut être simplement comprise comme une plate-forme de virtualisation matérielle, qui existe en tant que pilote d'état du noyau. dans le système d'exploitation hôte.
La méthode permettant aux machines virtuelles d'isoler les ressources consiste à utiliser un système d'exploitation indépendant et à utiliser l'hyperviseur pour virtualiser le processeur, la mémoire, les périphériques IO, etc. Par exemple, pour les processeurs virtuels, l'hyperviseur créera une structure de données pour chaque processeur virtuel, simulera les valeurs de tous les registres du processeur, suivra et modifiera ces valeurs le cas échéant. Il convient de préciser que dans la plupart des cas, le code logiciel de la machine virtuelle s'exécute directement sur le matériel sans l'intervention de l'hyperviseur. Uniquement sous certaines requêtes à privilèges élevés, le système d'exploitation invité doit exécuter le mode noyau pour modifier les données du registre du processeur, et l'hyperviseur interviendra pour modifier et maintenir l'état du processeur virtuel.
La façon dont l'hyperviseur virtualise la mémoire consiste à créer une table de pages fantômes. Dans des circonstances normales, une table de pages peut être utilisée pour traduire de la mémoire virtuelle vers la mémoire physique. Dans le cas de la virtualisation, puisque la mémoire dite physique est toujours virtuelle, la table des pages fantômes doit faire : mémoire virtuelle -> mémoire physique virtuelle -> mémoire physique réelle.
Pour la virtualisation des périphériques IO, lorsque l'hyperviseur reçoit une erreur de page et constate que l'adresse de la mémoire physique virtuelle correspond réellement à un périphérique d'E/S, l'hyperviseur utilise un logiciel pour simuler les conditions de fonctionnement de cet appareil et revient. Par exemple, lorsque le CPU souhaite écrire sur le disque, l'hyperviseur écrit les données correspondantes dans un fichier du système d'exploitation hôte. Ce fichier simule en fait un disque virtuel.
Par rapport à la solution de machine virtuelle pour réaliser l'isolation des ressources et de l'environnement, Docker est beaucoup plus simple. Docker Engine peut être simplement vu comme une encapsulation des opérations du système de fichiers NameSpace, Cgroup et de gestion d'images de Linux. Docker n'utilise pas de système d'exploitation invité complètement indépendant pour réaliser l'isolation de l'environnement comme une machine virtuelle. Il utilise la méthode de conteneur actuellement prise en charge par le noyau Linux lui-même pour réaliser l'isolation des ressources et de l'environnement. Pour faire simple, Docker utilise l'espace de noms pour isoler l'environnement système, utilise Cgroup pour implémenter des restrictions de ressources et utilise la mise en miroir pour isoler l'environnement du répertoire racine.
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!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

L'architecture système distribuée PHP atteint l'évolutivité, les performances et la tolérance aux pannes en distribuant différents composants sur les machines connectées au réseau. L'architecture comprend des serveurs d'applications, des files d'attente de messages, des bases de données, des caches et des équilibreurs de charge. Les étapes de migration des applications PHP vers une architecture distribuée comprennent : Identifier les limites des services Sélectionner un système de file d'attente de messages Adopter un cadre de microservices Déploiement vers la gestion de conteneurs Découverte de services

Réponse : Les microservices PHP sont déployés avec HelmCharts pour un développement agile et conteneurisés avec DockerContainer pour l'isolation et l'évolutivité. Description détaillée : utilisez HelmCharts pour déployer automatiquement des microservices PHP afin de réaliser un développement agile. Les images Docker permettent une itération rapide et un contrôle de version des microservices. Le standard DockerContainer isole les microservices et Kubernetes gère la disponibilité et l'évolutivité des conteneurs. Utilisez Prometheus et Grafana pour surveiller les performances et l'état des microservices, et créer des alarmes et des mécanismes de réparation automatiques.

Explication détaillée et guide d'installation pour les nœuds de pignon Cet article introduira l'écosystème de pignon en détail - nœuds PI, un rôle clé dans l'écosystème de pignon et fournir des étapes complètes pour l'installation et la configuration. Après le lancement du réseau de test de la blockchain pèse, les nœuds PI sont devenus une partie importante de nombreux pionniers participant activement aux tests, se préparant à la prochaine version du réseau principal. Si vous ne connaissez pas encore Pinetwork, veuillez vous référer à ce qu'est Picoin? Quel est le prix de l'inscription? PI Utilisation, exploitation minière et sécurité. Qu'est-ce que Pinetwork? Le projet Pinetwork a commencé en 2019 et possède sa pièce exclusive de crypto-monnaie PI. Le projet vise à en créer un que tout le monde peut participer

Il existe de nombreuses façons d'installer Deepseek, notamment: Compiler à partir de Source (pour les développeurs expérimentés) en utilisant des packages précompilés (pour les utilisateurs de Windows) à l'aide de conteneurs Docker (pour le plus pratique, pas besoin de s'inquiéter de la compatibilité), quelle que soit la méthode que vous choisissez, veuillez lire Les documents officiels documentent soigneusement et les préparent pleinement à éviter des problèmes inutiles.

La conteneurisation améliore les performances des fonctions Java des manières suivantes : Isolation des ressources : garantit un environnement informatique isolé et évite les conflits de ressources. Léger - consomme moins de ressources système et améliore les performances d'exécution. Démarrage rapide - réduit les délais d'exécution des fonctions. Cohérence : dissociez les applications et l'infrastructure pour garantir un comportement cohérent dans tous les environnements.

Réponse : Utilisez PHPCI/CD pour réaliser une itération rapide, y compris la configuration de pipelines CI/CD, de tests automatisés et de processus de déploiement. Configurer un pipeline CI/CD : sélectionnez un outil CI/CD, configurez le référentiel de code et définissez le pipeline de build. Tests automatisés : rédigez des tests unitaires et d'intégration et utilisez des frameworks de test pour simplifier les tests. Cas pratique : Utilisation de TravisCI : Installez TravisCI, définissez le pipeline, activez le pipeline et visualisez les résultats. Mettez en œuvre la livraison continue : sélectionnez les outils de déploiement, définissez les pipelines de déploiement et automatisez le déploiement. Avantages : améliorez l’efficacité du développement, réduisez les erreurs et raccourcissez les délais de livraison.

Déployez des applications Java EE à l'aide de conteneurs Docker : créez un fichier Docker pour définir l'image, créez l'image, exécutez le conteneur et mappez le port, puis accédez à l'application dans le navigateur. Exemple d'application JavaEE : l'API REST interagit avec la base de données, accessible sur localhost après déploiement via Docker.

1. Tout d'abord, après avoir ouvert l'interface, cliquez sur le bouton icône d'extension à gauche 2. Ensuite, recherchez l'emplacement de la barre de recherche dans la page d'extension ouverte 3. Ensuite, entrez le mot Docker avec la souris pour trouver le plug-in d'extension 4. . Enfin, sélectionnez le plug-in cible et cliquez à droite. Cliquez simplement sur le bouton d'installation dans le coin inférieur.
