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