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

Esegui il progetto JavaWeb costruito con MyEclipse nel container Docker

Questo articolo spiega come creare un'immagine Docker per il progetto Java web descritto nell'articolo precedente. Penso che sia piuttosto buono, quindi lo condivido con tutti voi e lo uso come riferimento. Seguiamo insieme l'autore per guardare:

L'applicazione gira nel container Docker in modo simile a come gira su un host fisico, quindi i passaggi per distribuire questo progetto Java web nel Docker dovrebbero essere i seguenti:

  • Supporto del server (qui scelto CentOS7)
  • Installa l'ambiente Java
  • Installa l'ambiente Tomcat
  • Elimina tutti i file (cartelle) nella directory webapps/ROOT nella directory root di Tomcat
  • Copia tutti i file (cartelle) nella directory WebRoot del progetto web sviluppato in webapps/ROOT di Tomcat
  • Avvia il servizio Tomcat

Le fasi sono chiare, ma per creare un'immagine Docker è necessario utilizzare un altro strumento: il Dockerfile.

Il Dockerfile è un file che contiene istruzioni speciali riconosciute da Docker. Dopo aver creato il file Dockerfile, è possibile utilizzare docker build per creare l'immagine Docker.

Inizia a costruire l'immagine Docker

  • Crea una cartella per questo esempio chiamata webapp
  • Copia il WebRoot del progetto nel questa cartella
  • Crea il file Dockerfile

La struttura è come segue:

Diagramma della struttura dell'immagine Docker

Creazione dell'immagine

docker build -t "zsl131/web01" .

Attenzione:

docker build: crea l'immagine Docker

-t "zsl131/web01": specifica il nome dell'immagine, qui specificato come zsl131/web01; il nome dell'immagine è composto da due parti, zsl131 è il nome del deposito che ho richiesto su hub.docker.com, mentre web01 è il nome effettivo dell'immagine.

.: Attenzione, c'è uno spazio prima di questo, che indica che il file Dockerfile deve essere trovato nella directory corrente per costruire l'immagine.

Di seguito è riportato il Dockerfile utilizzato per creare l'immagine Docker di questo esempio, per comprendere meglio il Dockerfile, è possibile rimuovere tutte le istruzioni dal file seguente e eseguire una riga alla volta: docker build -t "zsl131/web01" ., in questo modo è possibile vedere tutte le informazioni relative alla creazione dell'immagine utilizzando il Dockerfile:

# Utilizzare CentOS7 come immagine di base
FROM centos:7
# Quando non si sa come installare JDK, è possibile abilitare la seguente riga di comando e quindi eseguire: docker build
#RUN yum search java | grep jdk
# Installare la versione JDK appropriata
RUN yum install -y java-1.7.0-openjdk.x86_64
# Creare una directory chiamata web nel percorso di root
RUN mkdir /web/
# Impostare la directory di lavoro a /web, dopo aver impostato, è possibile utilizzare: RUN pwd per visualizzare il percorso corrente
WORKDIR /web/
# Installare wget per facilitare il download di Tomcat
RUN yum install -y wget
#Scaricare il file compresso di Tomcat
RUN wget http://mirrors.hust.edu.cn/apache/tomcat/tomcat-6/v6.0.48/bin/apache-tomcat-6.0.48.tar.gz
# Estrarre i file di Tomcat
RUN tar zxvf apache-tomcat-6.0.48.tar.gz
# Impostare la directory di lavoro
WORKDIR /web/apache-tomcat-6.0.48/webapps/ROOT/
# Visualizzare tutti i file (cartelle) nella directory corrente, a questo punto ci saranno alcuni file integrati di Tomcat
RUN ls -l
# Eliminare tutti i file (cartelle) nella directory corrente
RUN rm -rf *
# Dopo aver cancellato, controllare la lista, a questo punto non ci sono file
RUN ls -l
# Copiare tutti i file (cartelle) nella directory WebRoot nel directory corrente (webapps/ROOT), è possibile anche utilizzare l'istruzione COPY
ADD WebRoot .
# Dopo aver copiato, si può controllare la lista per vedere se la copia è avvenuta con successo
RUN ls -l
# Impostare la directory di lavoro alla directory bin di Tomcat per facilitare l'avvio del servizio Tomcat
WORKDIR /web/apache-tomcat-6.0.48/bin/
# Esporre il portale 8080 di Tomcat all'esterno
EXPOSE 8080
# Avviare il servizio Tomcat, in modo che l'avvio non venga sovrascritto durante docker run
ENTRYPOINT ["./catalina.sh", "run"]

Dopo aver completato la scrittura del Dockerfile, costruire l'immagine finale con i seguenti comandi:

docker build -t "zsl131/web01" .

Utilizzando il comando docker images è possibile visualizzare l'immagine appena creata.

Esegui il contenitore

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

Spiegazione:

docker run: comando per eseguire il contenitore

-d: esegui in background

--name web01: imposta il nome del contenitore come web01

-p 80:8080: specifica il portale esposto esternamente come 80, ossia quando si accede all'indirizzo 80 esterno, viene mappato al portale 8080 interno

zsl131/web01: nome dell'immagine

Visualizza i log di avvio del contenitore

docker logs web01

Spiegazione:

docker logs: comando per visualizzare i log del contenitore

web01: il nome del contenitore visualizzato, qui è web01

Accesso

Apri il browser e inserisci: http://192.168.99.100 per accedere al progetto Javaweb creato da MyEclipse.

Attenzione: 192.168.99.100 è l'indirizzo IP del mio host Docker, può essere visualizzato tramite docker-machine inspect test01, dove test01 è il nome dell'host Docker.

Questo è tutto il contenuto dell'articolo, spero che sia utile per la tua apprendimento, e ti prego di supportare e gridare tutorial.

Dichiarazione: il contenuto di questo articolo è stato raccolto da Internet, il copyright è dell'autore originale, il contenuto è stato contribuito e caricato autonomamente dagli utenti di Internet, il sito web non detiene il diritto di proprietà, non è stato editato manualmente e non assume responsabilità per le responsabilità legali correlate. Se trovi contenuti sospetti di violazione del copyright, ti preghiamo di inviare una e-mail a: notice#oldtoolbag.com (al momento dell'invio dell'e-mail, sostituisci # con @) per segnalare, fornendo prove pertinenti. Una volta verificata, il sito web rimuoverà immediatamente il contenuto sospetto di violazione del copyright.

Ti potrebbe interessare