Docker (1) -concepts de base

Insérez la description de l'image ici

1. Qu'est-ce que Docker?

  Docker est un moteur de conteneur d'applications open source basé sur le langage Go. Les développeurs peuvent regrouper leurs applications et leurs dépendances dans un fichier image portable, puis les publier sur le serveur.

2. Quel problème Docker a-t-il résolu?

2.1 Environnement d'exploitation incohérent La
  technologie Docker résout principalement le problème selon lequel une série de programmes ne peut pas s'exécuter normalement en raison de l'environnement de développement incohérent. Par exemple, les développeurs ont testé, empaqueté et déployé dans leurs propres environnements, mais une série de problèmes s'est produite lors du lancement de la livraison et de la maintenance. Le développeur a déclaré que tout était normal, le personnel d'exploitation et de maintenance a déclaré qu'il y avait un problème avec le code du développeur, etc.

  À l'aide de Docker, le code d'application du développeur et la configuration de l'environnement de développement peuvent être regroupés dans un conteneur, puis portés sur le système Linux, ce qui résout le problème «exécuter sur ma machine».

2.2 L'influence mutuelle entre les utilisateurs du serveur public
  Docker est isolée Dans un système Linux public, si un certain programme consomme beaucoup de ressources système, alors ce programme peut facilement affecter le fonctionnement normal d'autres programmes. Plus tard, la technologie des machines virtuelles est apparue, et chaque machine virtuelle a été isolée les unes des autres, et différents utilisateurs n'ont pas interagi les uns avec les autres. Mais par rapport à虚拟机cette solution de virtualisation lourde, Docker a les avantages d'une virtualisation légère et d'une faible consommation de performances.

2.3 Environnement d'installation répété sur le serveur
  De nombreuses applications Java utilisent désormais le déploiement de cluster distribué. Le clustering signifie plusieurs serveurs. Pour le fonctionnement normal de l'application, nous pouvons avoir besoin que l'environnement d'exploitation de chaque serveur soit le même. Nous devons installer l'environnement d'exploitation une fois pour un serveur. S'il y a peu de machines, que faire s'il y en a des dizaines?

  Docker peut facilement résoudre ces problèmes de fonctionnement répétés. Le logiciel est installé avec l'environnement, ce qui économise du temps et des efforts.

3. La philosophie Docker

  Build,Ship and Run Any App,AnywhereC'est la philosophie de Docker, c'est-à-dire 随时随地构建、安装、运行在任何地点.

4. Les trois principaux éléments de Docker?

  Trois éléments de Docker:

Élément La description
Miroir L'image Docker (Image) est un modèle en lecture seule. L'image peut être utilisée pour créer des conteneurs Docker et une image peut créer plusieurs conteneurs.
Conteneur Vous pouvez considérer le conteneur comme une version simple de l'environnement Linux (y compris les autorisations des utilisateurs root, l'espace de processus, l'espace utilisateur, l'espace réseau, etc.) et les applications qui s'y exécutent. Un conteneur exécute un service.
Entrepôt Docker Hub est similaire à GitHub. Docker Hub est un référentiel central de fichiers image. Les développeurs empaquetent l'environnement d'exploitation local sous forme de fichier image et le téléchargent sur Docker Hub. Ensuite, O&M télécharge le fichier image à partir d'ici pour l'exécuter de manière transparente.

  Par exemple, dans le système Linux, nous l'avons installé sur une machine. Redis、MysqlSi le projet est un déploiement en cluster, vous devez installer le logiciel sur une autre machine. S'il s'agit d'une méthode d'installation traditionnelle, elle est plus gênante et certains fichiers de configuration doivent être modifiés. Après avoir utilisé la technologie Docker, nous Redisempaquetons l'environnement en cours d'exécution sous forme de fichier image et après avoir exécuté le fichier image sur une autre machine, nous pouvons installer un Redisenvironnement en cours d'exécution qui est exactement le même . Afin d'obtenir 一次封装,到处运行l'effet.

5. Machines virtuelles et conteneurs

  La machine virtuelle (machine virtuelle) est une solution avec installation d'environnement. Il peut exécuter un autre système d'exploitation dans un système d'exploitation, par exemple, nous pouvons exécuter le système linux dans le système Windows. Le programme d'application ne le sait pas. Pour le système Windows, le système Linux est l'un de ses logiciels. Supprimez-le si vous n'en avez pas besoin, cela n'aura aucun effet. La machine virtuelle simule complètement un autre ensemble de système complet: mémoire, disque dur, carte son ..., occupe beaucoup de ressources, et son démarrage est vraiment lent ~~ compte
Insérez la description de l'image ici
  tenu des lacunes de la technologie des machines virtuelles, Linux a développé un autre virtuel Technologie: conteneurs Linux (conteneurs Linux, en abrégé LXC).

  Le conteneur Linux virtualise le système d'exploitation, ce qui est différent de la VM virtualisant un ordinateur complet. Avec un conteneur, vous pouvez regrouper toutes les ressources requises par le logiciel dans un conteneur isolé. Le conteneur n'a besoin que des ressources de la bibliothèque et de la configuration requises pour que le logiciel fonctionne. Quelles imprimantes et cartes son ne conviennent pas à l'armure logicielle. Le système est donc plus léger que la machine virtuelle et assure le déploiement dans n'importe quel environnement Peut être exécuté au milieu.

Conteneur Docker Machine virtuelle
Système d'exploitation Partager le système d'exploitation avec l'hôte Exécutez le système d'exploitation de la machine virtuelle sur le système d'exploitation hôte
Taille de stockage Petite image miroir pour un stockage et une transmission faciles Image énorme (vmdk, vid, etc.)
Performance de course Presque aucune perte de performance supplémentaire Système d'exploitation supplémentaire CPU, consommation de mémoire
La portabilité Léger, flexible et adaptable à Linux Lourd et fortement couplé à la technologie virtuelle
Affinité matérielle Pour les développeurs de logiciels Pour les responsables du matériel
Vitesse de déploiement Rapide, secondes Plus lent, plus de 10 s

6. Avantage de la technologie des conteneurs?

L'utilisation de conteneurs pour déployer des applications est appelée conteneurisation, et les conteneurs sont largement appréciés par la communauté de développement en raison des caractéristiques suivantes:

CARACTÉRISTIQUES La description
Flexible Même les applications les plus complexes peuvent être conteneurisées
La portabilité Les développeurs peuvent créer localement, puis déployer sur des services cloud et exécuter
Léger Le conteneur utilise et partage le noyau hôte, qui est plus efficace que la machine virtuelle en termes de ressources système
Lâchement couplé Le conteneur est hautement autosuffisant et peut être remplacé ou amélioré sans endommager les autres conteneurs
Évolutif Peut ajouter et distribuer automatiquement des copies de conteneur dans le centre de données
Sûr Le conteneur appliquera des contraintes actives et l'isolement au processus sans aucune configuration de l'utilisateur

Suivant: Docker (2) -Installation

Publié 117 articles originaux · J'aime 57 · Visiteurs 10 000+

Je suppose que tu aimes

Origine blog.csdn.net/qq_43655835/article/details/104893900
conseillé
Classement