Maison  >  Article  >  Opération et maintenance  >  À quoi peut servir Docker ?

À quoi peut servir Docker ?

藏色散人
藏色散人original
2021-11-22 16:46:4892992parcourir

Docker peut être utilisé pour effectuer les opérations suivantes : 1. Vous pouvez créer rapidement un environnement de développement ; 2. Vous pouvez mettre l'environnement d'exécution et la configuration dans le code et le déployer 3. Vous pouvez utiliser docker-compose pour simuler la production ; environnement ; 4. Test automatique ; 5. Utiliser des images Docker pour l'auto-déploiement, etc.

À quoi peut servir Docker ?

L'environnement d'exploitation de cet article : système linux5.9.8, version docker-1.13.1, ordinateur Dell G3.

À quoi peut servir Docker ?

Docker est un moteur de conteneur d'applications open source qui permet aux développeurs de regrouper leurs applications et leurs packages de dépendances dans une image portable, puis de la publier sur n'importe quelle machine avec système d'exploitation Linux ou Windows populaire, et peut également implémenter un changement de virtualisation. Les conteneurs utilisent entièrement le mécanisme sandbox et n'ont aucune interface entre eux.

Pourquoi utiliser Docker ?

En tant que méthode de virtualisation émergente, Docker présente de nombreux avantages par rapport aux méthodes de virtualisation traditionnelles.

Tout d'abord, les conteneurs Docker peuvent être démarrés en quelques secondes, ce qui est beaucoup plus rapide que les méthodes traditionnelles de machine virtuelle. Deuxièmement, Docker a un taux d'utilisation élevé des ressources système. Des milliers de conteneurs Docker peuvent être exécutés simultanément sur un seul hôte.

En plus d'y exécuter l'application, le conteneur ne consomme pratiquement aucune ressource système supplémentaire, ce qui rend les performances de l'application très élevées et la surcharge du système aussi réduite que possible. La méthode traditionnelle des machines virtuelles nécessite 10 machines virtuelles pour exécuter 10 applications différentes, tandis que Docker n'a besoin que de démarrer 10 applications isolées.

Plus précisément, Docker présente de grands avantages dans les aspects suivants.

  • Livraison et déploiement plus rapides

Pour le personnel de développement, d'exploitation et de maintenance (devop), ce qu'ils espèrent le plus est de créer ou de configurer une fois et de s'exécuter normalement n'importe où.

Les développeurs peuvent utiliser une image standard pour créer un ensemble de conteneurs de développement. Une fois le développement terminé, le personnel d'exploitation et de maintenance peut directement utiliser ce conteneur pour déployer du code. Docker peut créer rapidement des conteneurs, itérer rapidement sur les applications et rendre l'ensemble du processus visible, permettant ainsi aux autres membres de l'équipe de comprendre plus facilement comment l'application est créée et fonctionne. Les conteneurs Docker sont légers et rapides ! Le temps de démarrage du conteneur est de quelques secondes, ce qui permet de gagner beaucoup de temps en matière de développement, de test et de déploiement.

  • Virtualisation plus efficace

Les conteneurs Docker ne nécessitent pas de prise en charge supplémentaire de l'hyperviseur pour fonctionner. Il s'agit d'une virtualisation au niveau du noyau, il peut donc atteindre des performances et une efficacité plus élevées.

  • Migration et expansion plus faciles

Les conteneurs Docker peuvent fonctionner sur presque toutes les plates-formes, y compris les machines physiques, les machines virtuelles, les cloud publics, les cloud privés, les ordinateurs personnels, les serveurs, etc. Cette compatibilité permet aux utilisateurs de migrer directement une application d'une plateforme à une autre.

  • Gestion plus simple

Avec Docker, seules de petites modifications sont nécessaires pour remplacer une grande quantité de travail de mise à jour dans le passé. Toutes les modifications sont distribuées et mises à jour progressivement, permettant une gestion automatisée et efficace.

Neuf scénarios d'application courants de Docker

1 Dépendance locale

Avez-vous besoin d'essayer rapidement Magento sur votre système local ou d'utiliser MySQL pour un projet ? Ou souhaitez-vous essayer la plupart des projets open source ? Alors utilisez Docker, cela vous fera gagner beaucoup de temps. Docker peut améliorer l'efficacité du développement des développeurs et nous permettre de créer rapidement un environnement de développement.

Les machines dans l'environnement de développement ont généralement une mémoire relativement petite. Lors de l'utilisation de la virtualisation auparavant, il était souvent nécessaire d'ajouter de la mémoire à la machine dans l'environnement de développement. Cependant, grâce à Docker, des dizaines de services peuvent être facilement exécutés dans Docker.

2. Environnement de construction

Si vous souhaitez créer le code source, mais constatez que l'environnement approprié n'est pas préparé. Utiliser Docker est alors une solution à considérer. Après tout, si vous utilisez la méthode traditionnelle pour installer les logiciels un par un, l'installation d'un grand nombre de logiciels prendra beaucoup de temps. L'utilisation de la technologie des conteneurs permet d'économiser du temps et des efforts, pourquoi pas ?

Il vous permet de mettre l'environnement d'exécution et la configuration dans le code, puis de le déployer. La même configuration Docker peut être utilisée dans différents environnements, ce qui réduit le couplage entre les exigences matérielles et l'environnement d'application. Voici un exemple qui mérite d'être examiné : docker golang builder.

3. Microservices

Utilisez-vous des microservices ? Architecture de microservices : division d'une application monolithique en services individuels faiblement couplés.

Pensez ensuite à Docker. Vous pouvez empaqueter chaque service sous forme d'image Docker et utiliser docker-compose pour simuler l'environnement de production (réseaux Docker de paiement). Cela peut prendre du temps et être laborieux au début, mais à long terme, cela générera finalement une énorme productivité.

4. Tests automatisés

Imaginez la question : comment rédiger des cas de test d'intégration automatisés ? Ces cas de test ne mettent pas beaucoup de temps à démarrer et peuvent être facilement gérés par les utilisateurs.

Cela ne signifie pas exécuter des cas de test dans Docker, mais exécuter des cas de test en étroite collaboration avec l'image. Il y a un gros avantage lorsque vous écrivez des cas de test sur une image Docker. Voici une brève introduction à mon processus de test : exécutez deux images Docker (app + db), chargez les données au démarrage de MySQL et utilisez l'API sur le docker de l'application.

5. Processus de déploiement

Vous pouvez utiliser des images Docker pour l'auto-déploiement. De nombreux grands fournisseurs d'hébergement prennent en charge Docker hébergé, et si vous disposez d'un nœud/VM dédié avec accès au shell, les choses seront plus faciles. Configurez simplement Docker et exécutez votre image sur le port souhaité.

6. Déploiement continu

On ​​dit que Docker est naturellement adapté à l'intégration continue/au déploiement continu, en utilisant Docker dans le déploiement, le déploiement continu deviendra très simple et recommencera après la saisie d'une nouvelle image.

Concernant l'automatisation de cette partie, il existe désormais de nombreuses solutions parmi lesquelles choisir, et Kubernetes est un nom familier. Kubernetes est un système de gestion de clusters de conteneurs. Il s'agit d'une plate-forme open source qui peut réaliser le déploiement automatique, l'expansion et la contraction automatiques, la maintenance et d'autres fonctions des clusters de conteneurs.

7. Environnement multi-tenant (Multi-tenancy)

Un scénario d'utilisation intéressant de Docker concerne les applications multi-tenant, qui peuvent éviter la réécriture des applications clés. Si vous exposez des services d'application à plusieurs locataires (un locataire est un groupe d'utilisateurs, tel qu'une organisation), les applications conçues avec une solution à locataire unique peuvent rapidement obtenir des services multi-locataires si elles utilisent un sous-domaine + docker.

Un exemple de ce scénario consiste à développer un environnement multi-tenant rapide et facile à utiliser pour les applications IoT. Le code de base de ce type de multilocation est très complexe et difficile à gérer. La replanification d'une telle application prend non seulement du temps, mais également de l'argent. À l'aide de Docker, vous pouvez créer des environnements isolés pour plusieurs instances de la couche d'application de chaque locataire, ce qui est non seulement simple mais également peu coûteux. Bien entendu, tout cela bénéficie de la vitesse de démarrage de l'environnement Docker et de sa commande diff efficace.

8. Plusieurs applications à partir d'une seule machine

Cela est quelque peu lié aux microservices mentionnés ci-dessus, mais même si vous n'utilisez pas de microservices et fournissez simplement des services, Docker peut toujours bien gérer tous les services sur une seule machine. Vous devez utiliser des montages de dossiers pour conserver les données de chaque image Docker basée sur les données.

9. Scaling QPS (Scaling QPS)

Docker vous aide à vous développer facilement horizontalement en créant un autre conteneur. Si vous rencontrez d'énormes pics de trafic, Docker peut vous aider à résoudre le problème : ajoutez simplement plus de machines et augmentez le nombre de conteneurs exécutés derrière l'équilibreur de charge.

Existe-t-il des scénarios d'application pour Docker qui ne sont pas mentionnés dans l'article ? Vous êtes invités à le partager avec tout le monde~

Cet article a été initialement publié sur oschina Le contenu de l'article est l'opinion personnelle de l'auteur et ne représente pas la position de ce site.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn