Die entwickelte Anwendung ist eine von Crud Javaweb mit Tomcat und Postgres.
Wir verwenden nur die Entität einer Person als Domain.
Es ist eine einfache Anwendung für den didaktischen Gebrauch, daher wurden sie nicht angesprochen
Sicherheitskonzepte und Datenvalidierung zum Beispiel.
Wir konzentrieren uns nur darauf, einen Java -Anwendungscontainer und einen Container für die zu erstellen
Anwendungsdatenbank mit Docker.
Für die Lösung der Aktivität der Disziplin von POS konzipiert
Systemanalyse- und Entwicklungskurs
IFPB Campus Cajazerias
Disziplin -Professorin Ricardo Job
Holen Sie sich zunächst den Docker 
Docker Download
Da wir Docker jedoch für die Bereitstellung verwenden, können Sie nur einen Texteditor wie Sublime oder Notepad ++ verwenden ...





Wenn Ihnen der Stil der IDE gefällt, den Code zu vervollständigen, können Sie Netbeans oder Eclipse verwenden. 

Dockerfile -Datei der Datenbank Erstellen Sie in Ihrem Projekt ein Verzeichnis mit den postgres und in einer Dockerfile -Datei zusammen mit zwei weiteren Dateien create.sql und c Incene.sql werden wir bald darüber und deren Inhalte darüber sprechen.
Die DockerFile -Datei hatte den folgenden Inhalt:
Von postgres
Env postgres_user postgres
Env postgres_password 12345
Env postgres_db post-Client
Kopieren Sie create.sql /docker-entrypoint-initdb.d/
Kopieren Sie insert.sql /Docker-entrypoint-initdb.d/
Wie wir in der obigen Datei erkennen, setzen wir Postgres ein
Anzeigen des Benutzers, des Kennworts und des Namens der Bank, die erstellt wird, um die Daten zu erhalten
Anwendung.
In den letzten beiden Zeilen informieren wir den Docker, der nach dem Erstellen der Datenbank
Es sollte den Inhalt der beiden create.sql -Dateien gelesen werden, die die Tabelle erstellen insert.sql
Das wird in die Post-Client-Bank eingefügt.
Sensationell nicht?
Erstellen Sie Tabelle Pessoa (
Serienausweis,
Nennenzeichen variieren (80), nicht null,
CPF -Zeichen variiert (14) nicht null,
Primärschlüssel (ID)
);
In die Person einfügen (Name, CPF) Werte ('Kiko', '123.132.121-31');
In Person (Name, CPF) -Werte einfügen ('Schlüssel', '123.132.121-31');
In Person (Name, CPF) -Werte einfügen ('Chiquinha', '123.132.121-31');
In Person (Name, CPF) -Werte einfügen ('Madruga', '123.132.121-31');
In Person (Name, CPF) -Werte einfügen ('Florinda', '123.132.121-31');
docker build -t elefante/banco ./postgres
-t : Welches Tag werden wir diesem Bild zuweisen
./postgres
* elefante/banco : Bildname, den wir zugeschrieben haben
Nachdem Sie den Befehl oben ausgeführt haben, wenn Sie das Bild nicht haben
Von Postgres wird der Docker Sie natürlich automatisch arrangieren
Dies liegt daran, dass wir diesen Weg auf Dockerfile beschreiben.
docker image ls
oder
docker images
docker run -p 5433:5432 -d --name banco elefante/banco
-p : Binden Sie zwischen der lokalen Host -Tür mit dem Container -Tür -d : Der Behälter wird in einem Hintergrund ausgeführt, der den banco nicht behindert --name
Oben haben wir den Beitrag von Postgres bis 5433 konfiguriert, was in diesem Fall der Port war
Das habe ich in meiner Java -Anwendung konfiguriert, die Tür danach : Ist die Containertür, die wir erstellt haben.
Dockerfile -Datei FROM tomcat
COPY target/Aplicacao.war ${CATALINA_HOME}/webapps
FROM : Sagen Sie, welches Bild wir brauchen
COPY : Sagen Sie den Weg, woher Sie die WAR -Dateien zur Bereitstellung kopieren können
${CATALINA_HOME}/webapps : Ort, an dem wir die herrlichen Dateien speichern
Diese Dockerfile -Datei muss im Stammverzeichnis Ihres Projekts liegen.
Es ist bemerkenswert, dass die Aplicacao die Finanzierung war, die ich der Bewerbung gegeben habe
Innerhalb der pom.xml.
Mit diesem Namen werden wir das System im Browser aufrufen.
<build>
<finalName>Aplicacao</finalName>
</build>
Und natürlich müssen wir im WEB-INF Ordner ein weiteres Verzeichnis namens lib haben
Das muss die Bibliotheken jstl.jar und standart.jar enthalten, sonst haben wir
Probleme, wenn Sie unser System im Browser einnehmen.
docker build -t imagem-da-aplicacao-java .
-t : Welches Tag werden wir diesem Bild zuweisen
. : relativer (oder absoluter) Pfad zur Dockerfile -Datei
Nachdem Sie den Befehl oben ausgeführt haben, wenn Sie das Bild nicht haben
Von Tomcat arrangiert der Docker Sie natürlich automatisch,
Dies liegt daran, dass wir diese Aktion auf dem fraglichen Projekt Dockerfile beschreiben.
Von tomcat
Kopieren Sie Ziel/application.war $ {catalina_home}/webapps
docker image ls
oder
docker images
docker run -p 8080:8080 -d --name app --link banco:host-banco imagem-da-aplicacao-java
-p : Binden Sie zwischen der örtlichen Wirtstür mit der Containertür
-d : Der Behälter wird im Hintergrund ausgeführt.* Behindert das Terminal nicht
--name : Der Name des Containers
--link : Damit der Docker die Bank des Conteiners mit dem Host-Kachel verbindet, auf das in unserem Java-Projekt in der Datei dbutil.java verwiesen wurde
Gehen Sie nun zum Browser, um Ihr Projekt zu öffnen: http: // localhost: 8080/application
Oben haben wir den Tomcat -Port auf 8082 konfiguriert? Erinnere dich?
In meinem Fall, da ich noch Docker Toolbox unter Windows verwende, öffne ich die Anwendung unter http://192.168.99.100:8080/application.war/
Um den Entwicklungsprozess zu optimieren, erstellen wir zwei .SH -Dateien:
Run.sh
Die Datei run.sh muss den folgenden Inhalt enthalten:
Docker Build -t -Elefant/Bank ./Postgres
Docker Run -P 5433: 5432 -d -name Bank Elefant/Bank
MVN Clean Package
Docker Build -t-Bild-der-aja-java.
Docker Run -P 8080: 8080 -d-Name App-Link Bank: Host-Banco Image-a Application-Java
nonRun.sh
Docker Stop App
Docker Kill App
Docker RM App
Docker rmi -f Bild der Anwendung-Java
Docker Stop Bank
Docker Kill Bank
Docker RM Bank
Docker RMI -f Elefant/Bank
Da Sie also bereits die Bilder und Container erstellen lassen, erstellen Sie,
Es ist nicht mehr erforderlich, jedes Mal die Befehle zum Erstellen des Datenbankbildes einzugeben.
Erstellen Sie den Kontaktcontainer und erstellen Sie das Bild der Webanwendung, erstellen Sie die
Der Container nach jedem Update Ihres Projekts.
Einfach den Typ bei Docker öffnen:
Sh run.sh
Wird alles auf einmal tun:
Sh nonRun.sh
Wird alles auf einmal tun:
Der Docker stoppt den Anwendungscontainer
Docker wird den Container töten
Entfernen Sie den Anwendungsbehälter
Sie entfernen das Bild aus der Docker -Anwendung
Der Docker stoppt den Banco Elefante -Container
Docker wird den Container töten
Entfernen Sie den Bankbehälter
Entfernen Sie das Bankbild
Maven wird das Projekt reinigen

docker container ls
docker ps -a
docker stop <container_id | container_name>
Docker -Referenzen
Wir verwenden Git.