English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Exécution d'un projet JavaWeb construit avec MyEclipse dans un conteneur Docker

Cet article explique comment créer une image Docker pour le projet Java web mentionné dans l'article précédent. L'auteur pense que c'est assez bien, et le partage avec tout le monde, en espérant qu'il puisse également servir de référence. Suivons ensemble l'auteur pour voir comment faire

L'application s'exécute dans un conteneur Docker et sur un appareil physique de la même manière, donc les étapes de déploiement de ce projet Java web dans Docker devraient être les suivantes :

  • Support du serveur (ici, nous choisissons CentOS7)
  • Installer l'environnement Java
  • Installer l'environnement Tomcat
  • Copier le répertoire webapps dans le répertoire racine de Tomcat/Supprimer tous les fichiers (dossiers) dans le répertoire ROOT
  • Copier tous les fichiers (dossiers) du répertoire WebRoot de votre projet web développé dans webapps de Tomcat/Dans le répertoire ROOT
  • Démarrer le service Tomcat

Les étapes sont très claires, mais pour créer une image Docker, il faut utiliser une autre chose : Dockerfile.

Dockerfile est un fichier contenant des instructions spéciales reconnues par Docker. Une fois le fichier Dockerfile créé, vous pouvez utiliser docker build pour créer l'image docker.

Commencer à construire l'image Docker

  • Créer un dossier pour cet exemple : webapp
  • Copier le WebRoot du projet dans ce dossier
  • Créer un fichier Dockerfile

La structure est illustrée comme suit :

Construire un diagramme de structure d'image Docker

Créer une image

docker build -t "zsl131/web01" .

Attention :

docker build : créer une image Docker

-t "zsl131/web01":Spécifier le nom de l'image, ici spécifié comme zsl131/web01;le nom de l'image est composé de deux parties, le dépôt et le nom, zsl131est le nom du dépôt que j'ai enregistré et demandé sur hub.docker.com, web01est le nom de cette image

.:Attention, il y a un espace en avant, ce qui signifie chercher le fichier Dockerfile dans le répertoire courant pour construire l'image.

Voici le Dockerfile de l'image Docker créée dans cet exemple, pour mieux comprendre Dockerfile, vous pouvez supprimer toutes les instructions du fichier suivant, puis exécuter une fois par ligne :docker build -t "zsl131/web01" .,de cette manière, vous pouvez voir diverses informations sur la construction de l'image Docker en utilisant Dockerfile :

# Avec Centos7comme image de base
FROM centos:7
# Lorsque vous ne savez pas comment installer JDK, vous pouvez activer la ligne de commande suivante et exécuter directement :docker build
#RUN yum search java | grep jdk
# Choisir la version JDK appropriée à installer
RUN yum install -y java-1.7.0-openjdk.x86_64
# Créer un répertoire nommé web dans le répertoire racine
RUN mkdir /web/
# Définir le répertoire de travail/web,après la configuration, vous pouvez utiliser :RUN pwd pour voir le chemin actuel
WORKDIR /web/
# Installer wget pour faciliter le téléchargement de Tomcat
RUN yum install -y wget
# Télécharger le fichier compressé Tomcat
RUN wget http://mirrors.hust.edu.cn/apache/tomcat/tomcat-6/v6.0.48/bin/apache-tomcat-6.0.48.tar.gz
# Décompresser les fichiers Tomcat
RUN tar zxvf apache-tomcat-6.0.48.tar.gz
# Définir le répertoire d'outils
WORKDIR /web/apache-tomcat-6.0.48/webapps/ROOT/
# Regarder les fichiers (dossiers) sous le répertoire courant, à ce moment-là, il y aura certains fichiers fournis par Tomcat
RUN ls -l
# Supprimer tous les fichiers (dossiers) sous le répertoire courant
RUN rm -rf *
# Supprimer et lister à nouveau, à ce moment-là, il n'y a aucun fichier
RUN ls -l
# Copier tous les fichiers (dossiers) sous le répertoire WebRoot dans le répertoire courant (webapps/ROOT),ici, vous pouvez également utiliser l'instruction COPY
ADD WebRoot .
# Vérifier après la copie s'il y a eu une copie réussie
RUN ls -l
# Définir le répertoire de travail sous le répertoire bin de Tomcat, pour faciliter le lancement du service Tomcat
WORKDIR /web/apache-tomcat-6.0.48/bin/
# Exposer Tomcat808Port 0
EXPOSE 8080
# Démarrer le service Tomcat, de cette manière, il ne sera pas couvert lors du lancement de docker run
ENTRYPOINT ["."}/["catalina.sh", "run"]

Après avoir écrit Dockerfile, construire l'image avec la commande suivante à la fin :

docker build -t "zsl131/web01" .

Vous pouvez voir l'image construite récemment avec la commande docker images.

Exécuter un conteneur

docker run -d --name web01 -p 80:8080 zsl131/web01

Explication :

Commande docker run : commande pour exécuter un conteneur

-d : Exécuter en arrière-plan

--name web01: Définissez le nom du conteneur en web01

-p 80:8080 : Spécifiez le port exposé à l'extérieur80, c'est-à-dire lorsque l'accès externe est8Port 0 sera redirigé vers le conteneur interne808Port 0

zsl131/web01:nom de l'image

Voir les journaux de démarrage du conteneur

docker logs web01

Explication :

Commande docker logs : commande pour afficher les journaux du conteneur

web01:le nom du conteneur à consulter, ici web01

Accéder

Ouvrez le navigateur et entrez : http://192.168.99.100 pour accéder au projet Java Web créé par MyEclipse.

Attention :192.168.99.100 est l'adresse IP de mon hôte Docker, accessible via Docker-machine inspect test01Pour consulter, y compris test01C'est le nom de l'hôte Docker.

Voici la fin de cet article, j'espère qu'il vous aidera dans vos études et que vous soutiendrez également le tutoriel d'alarme.

Déclaration : le contenu de cet article est issu d'Internet, propriété de ses auteurs respectifs, contribué par les utilisateurs d'Internet et téléversé spontanément. Le site n'en possède pas la propriété, n'a pas fait d'édition humaine et n'assume aucune responsabilité juridique. Si vous trouvez du contenu suspect de violation de droits d'auteur, veuillez envoyer un e-mail à notice#w.3Pour signaler une violation de droits d'auteur, veuillez envoyer un e-mail à codebox.com (remplacez # par @) avec des preuves pertinentes. Une fois vérifié, le site supprimera immédiatement le contenu suspect.

Vous pourriez aussi aimer