Maison  >  Article  >  Java  >  Comment implémenter la gestion et la surveillance dynamiques des conteneurs Docker basés sur Springboot et Docker-Java

Comment implémenter la gestion et la surveillance dynamiques des conteneurs Docker basés sur Springboot et Docker-Java

PHPz
PHPzavant
2023-05-12 15:25:061762parcourir

docker introduction

docker est un moteur de conteneur d'applications open source Par rapport à la technologie de machine virtuelle traditionnelle, la surcharge de performances du conteneur Docker est extrêmement faible, elle l'est donc également. largement utilisé par les développeurs. Comme il y a de plus en plus de développeurs basés sur Docker, le nombre d'images Docker est devenu plus riche. À l'avenir, diverses solutions complètes au niveau de l'entreprise pourront être utilisées directement en téléchargeant les images. Docker devient donc de plus en plus important.

Objectif de cet article

Cet article utilise un exemple de projet pour présenter comment gérer et surveiller les conteneurs Docker via l'interface externe Docker.

Scénario d'application :

Gérez le pool de ressources du serveur de manière unifiée via Docker, allouez des ressources et créez des conteneurs à la demande pour maximiser l'utilisation des ressources . Parallèlement, l'isolement entre chaque entreprise (conteneur) est assuré. Et peut prendre en charge le déploiement en ligne de projets.

1. Créez un conteneur Docker Tomcat via l'interface et configurez la limite.

2. Téléchargez le package war et déployez-le dans le conteneur.

3. Surveillez dynamiquement l'utilisation des ressources de tous les conteneurs Docker.

Le code est basé sur des composants open source docker-java et le développement des fonctions est terminé sur la base de spring-boot. L'interface est la suivante :

Comment implémenter la gestion et la surveillance dynamiques des conteneurs Docker basés sur Springboot et Docker-Java

Environnement de base

1, éclipse 2019- 03;# 🎜🎜#

2, docker pour Windows. Dans un souci d'apprentissage et de simplicité, l'environnement Linux n'est pas utilisé, mais les principes et commandes de base sont les mêmes.

Points de technologie et de connaissances associés :

maven, spring-boot ; spring mvc ; spring upload et download, jquery ajax et upload.

Principe d'implémentation

Docker fournit une multitude d'interfaces externes (telles que l'API restfull), à travers lesquelles Docker peut être géré. Le composant open source docker-java est encapsulé sur la base de cette interface, ce qui facilite le développement. Bien entendu, il existe d’autres composants packagés sur le marché que vous pouvez comparer et apprendre par vous-même. Merci aux auteurs open source ici.

Préparation avant mise en œuvre

1. Mettre à niveau Windows

Puisque nous utilisons un environnement Windows, l'auteur Mon l'ordinateur est préinstallé avec la version familiale Win10 et Docker pour Windows doit fonctionner sur un système d'exploitation de niveau supérieur pour utiliser la technologie de virtualisation, je dois donc passer à la version professionnelle.

Si vous avez besoin d'une mise à niveau, le processus de mise à niveau est relativement simple. Une brève introduction est la suivante (vous pouvez l'ignorer si vous disposez déjà d'une version professionnelle) :

# 🎜🎜#

# 🎜🎜#Cliquez pour modifier la clé de produit, entrez la clé de version professionnelle et attendez la mise à niveau. Vous pouvez trouver la clé en ligne par vous-même, elle est là de toute façon. Comment implémenter la gestion et la surveillance dynamiques des conteneurs Docker basés sur Springboot et Docker-Java

2. Installez Docker pour Windows

Après le téléchargement depuis le site officiel, passez à l'étape suivante. Après l'installation, il démarrera tout seul et le logo Docker apparaîtra sur la barre d'outils après le démarrage.

Une fois l'installation réussie, vous pouvez taper quelques commandes pour tester si elle a réussi. Par exemple : affichez des informations de base sur Docker. Comment implémenter la gestion et la surveillance dynamiques des conteneurs Docker basés sur Springboot et Docker-Java

3. Comment implémenter la gestion et la surveillance dynamiques des conteneurs Docker basés sur Springboot et Docker-Java

Étant donné que l'adresse du miroir par défaut est lente, un miroir Tomcat fait plus de 500 mètres de long. Si le réseau n'est pas bon, le téléchargement sera très lent. Vous pouvez configurer l'adresse du miroir sur l'adresse du miroir de NetEase. , comme suit :

# 🎜🎜#

4. Démarrer la gestion à distance

Comment implémenter la gestion et la surveillance dynamiques des conteneurs Docker basés sur Springboot et Docker-JavaVérifiez le dernier élément, le tcp//xxx voici le adresse de connexion à distance.

Après avoir commencé, saisissez l'adresse dans le navigateur pour voir si les résultats peuvent être renvoyés :

Comment implémenter la gestion et la surveillance dynamiques des conteneurs Docker basés sur Springboot et Docker-Java (Cette adresse est la même chose que Enter docker indo in cmd) Le contenu renvoyé est au format json :

Développement du code du processus d'implémentationComment implémenter la gestion et la surveillance dynamiques des conteneurs Docker basés sur Springboot et Docker-Java# 🎜 🎜#

1. Créez un projet maven.

Le processus étant simple, ce processus est omis. La structure du code de l'ensemble du projet est la suivante :

2 Configurez les dépendances maven de docker-java et spring boot. est le suivant

Comment implémenter la gestion et la surveillance dynamiques des conteneurs Docker basés sur Springboot et Docker-Java

En regardant le package jar, la couche inférieure de docker-java devrait utiliser la dépendance netty.

3. Ajoutez le fichier de configuration Spring application.properties

Configurez l'emplacement de jsp et l'adresse de gestion de docker.

Comment implémenter la gestion et la surveillance dynamiques des conteneurs Docker basés sur Springboot et Docker-Java

4. Introduction à la classe principale :

1. Classe principale de démarrage de Spring Boot.

Bien sûr, vous pouvez également configurer d'autres conteneurs ou utiliser le plug-in jetty de maven pour commencer.

Vous pouvez vous référer à un autre article : principe spring-boot (avec implémentation d'une instance spring-boot-starter) avec téléchargement du code source

Comment implémenter la gestion et la surveillance dynamiques des conteneurs Docker basés sur Springboot et Docker-Java

Faites attention à l'emplacement de cette classe, il est préférable de la placer dans le répertoire racine, afin qu'il se trouve sous le répertoire racine. Tous les sous-répertoires peuvent être analysés d'ici le printemps.

2.dockerclientoperaterserver (classe qui interagit avec docker), les détails sont les suivants :

Comprend les méthodes suivantes :

initclient : Lien d'initialisation.

getdockerinfo : obtenez des informations de base sur Docker ;

stat : informations statistiques en temps réel ;

refreshcontainers : obtenez des informations de base sur tous les conteneurs et mettez-les dans le cache 

createandstartrcontaineranddeployapp : créez et démarrez des conteneurs en fonction des paramètres transmis ; l'interface et déployez le projet en même temps ;

stopcontainer : Arrêtez le conteneur ;

rmcontainer : Supprimez le conteneur

closeclient : Fermez le lien

pushapptocotainer : Déployez le package war sur tomcat ; l'extrait de code est trop long, voici quelques méthodes principales :

Comment implémenter la gestion et la surveillance dynamiques des conteneurs Docker basés sur Springboot et Docker-Javacreatecontainer (créer un conteneur) :

Cette méthode utilise docker-java pour créer un conteneur, allouer des quotas, configurer le mappage des ports, etc.

pushapptocotainer : Déployer le projet sur tomcat

Comment implémenter la gestion et la surveillance dynamiques des conteneurs Docker basés sur Springboot et Docker-Javastat, méthode de surveillance :

Il n'y a pas de méthode docker-java pour surveiller cette partie. En fait, elle est prise en charge, mais comme les résultats renvoyés nécessitent divers traitements, je. utilisé la méthode de l’opportunisme. Utilisez Java pour appeler cmd à exécuter (statistiques du docker) afin d'obtenir les résultats de surveillance.

Comment implémenter la gestion et la surveillance dynamiques des conteneurs Docker basés sur Springboot et Docker-Javadocker-java Le code pour obtenir les informations de surveillance est le suivant :

Comment implémenter la gestion et la surveillance dynamiques des conteneurs Docker basés sur Springboot et Docker-Java3.dockerclientcontroller (contrôleur qui interagit avec l'interface).

Introduction aux principales méthodes :

addcontainer : ajouter un conteneur et télécharger un package de guerre

Comment implémenter la gestion et la surveillance dynamiques des conteneurs Docker basés sur Springboot et Docker-JavaCe qui précède est l'explication du code principal.

Pour plus de détails sur le code, veuillez télécharger le code source et suivre le processus pour l'afficher.

Interface principale après implémentation :

Comme il s'agit d'un exemple de projet, le code n'utilise pas les frameworks vue et bootstrap. J'ai écrit moi-même du CSS et du JS. Les effets spécifiques sont les suivants :

1. Page d'accueil de suivi et de gestion

Comment implémenter la gestion et la surveillance dynamiques des conteneurs Docker basés sur Springboot et Docker-Java2. Ajouter un conteneur ;

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:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer