開發的應用程序是由crud javaweb和tomcat和Postgres一起開發的。
我們僅將一個人的實體用作領域。
這是一個簡單的教學用法,因此未解決它們
例如,安全概念和數據驗證。
我們只專注於創建Java應用程序容器和一個容器
帶有Docker的應用程序數據庫。
構思以解決POS學科的活動
系統分析和開發課程
IFPB校園Cajazerias
紀律教授里卡多·約伯
首先得到Docker 
Docker下載
但是,當我們使用Docker進行部署時,您只能使用一個文本編輯器,例如Sublime或Notepad ++ ...





如果您喜歡讓IDE的風格幫助您完成代碼,則可以使用NetBeans或Eclipse。 

Dockerfile文件在您的項目中,創建一個帶有名稱postgres的目錄,在創建一個名為文件的Dockerfile中,還有兩個Create.SQL和insert.sql文件,我們將盡快談論它們及其內容。
Dockerfile文件具有以下內容:
來自Postgres
ENV POSTGRES_USER POSTGRES
Env Postgres_password 12345
ENV POSTGRES_DB後網點
複製create.sql /docker-entrypoint-initdb.d/
複製insert.sql /docker-entrypoint-initdb.d/
正如我們在上面的文件中所意識到的那樣,我們正在設置Postgres
指示將創建以接收數據的用戶,密碼和銀行的名稱
應用。
在最後兩行中,我們正在通知Docker,該碼頭在創建數據庫之後
它應該讀取兩個create.sql文件的內容,該文件將創建表和insert.sql
這將插入後續業銀行。
不轟動嗎?
創建表Pessoa(
串行ID,
名稱字符變化(80)不為空,
CPF字符變化(14)不為空,
主鍵(ID)
);
插入人(名稱,CPF)值('Kiko','123.132.121-31');
插入人(名稱,CPF)值('鍵','123.132.121-31');
插入人(名稱,CPF)值('Chiquinha','123.132.121-31');
插入人(名稱,CPF)值('Madruga','123.132.121-31');
插入人(名稱,CPF)值('Florinda','123.132.121-31');
docker build -t elefante/banco ./postgres
-t :我們將分配給此圖像的標籤./postgres
* elefante/banco :我們已歸因於圖像名稱
運行上面的命令後,如果沒有圖像
從Postgres,Docker將自動安排您
這是因為我們在Dockerfile上以這種方式描述。
docker image ls
或者docker images
docker run -p 5433:5432 -d --name banco elefante/banco
-p :在本地主機門之間使用容器門綁定-d :將在背景中執行容器,而不會阻塞終端--name : banco容器的名稱:容器名稱
上面我們將帖子從Postgres配置為5433,在這種情況下是端口
我在Java應用程序中配置的,之後:門是我們創建的容器門。
Dockerfile文件 FROM tomcat
COPY target/Aplicacao.war ${CATALINA_HOME}/webapps
FROM :說我們需要什麼形象COPY :說出從哪裡複製.war文件進行部署的方式${CATALINA_HOME}/webapps :我們將存儲光榮文件的位置
此Dockerfile文件必須在您項目的根目錄中。
值得注意的是,名稱Aplicacao是我給申請的財務
在pom.xml內部。
通過這個名稱,我們將在瀏覽器中調用系統。
<build>
<finalName>Aplicacao</finalName>
</build>
當然,在WEB-INF文件夾中,我們必須還有另一個名為lib的目錄
必須包含jstl.jar和standart.jar庫,否則我們將擁有
在瀏覽器中運輸系統時問題。
docker build -t imagem-da-aplicacao-java .
-t :我們將分配給此圖像的標籤. :dockerfile文件的相對(或絕對)路徑
運行上面的命令後,如果沒有圖像
當然,從Tomcat中,Docker會自動為您安排
這是因為我們在相關的項目上描述了該行動。
來自Tomcat
複製target/application.war $ {catalina_home}/webApps
docker image ls
或者docker images
docker run -p 8080:8080 -d --name app --link banco:host-banco imagem-da-aplicacao-java
-p :用容器門綁在本地主機門之間-d :容器將在後台執行*不妨礙終端--name :容器的名稱--link :要使Docker將Stoneiner銀行鏈接到我們Java項目中引用的主機瓷磚。
現在轉到瀏覽器打開您的項目:http:// localhost:8080/application
在上面,我們將Tomcat端口配置為8082記得嗎?
就我的情況而言,由於我仍在Windows上使用Docker Toolbox,因此請通過http://192.168.99.100:8080/application.war/打開應用程序。
要簡化開發過程,我們將創建兩個.sh文件:
run.sh
run.sh文件必須包含以下內容:
Docker Build -t大象/銀行./postgres
Docker Run -P 5433:5432 -D -Name Bank Elephant/Bank
MVN乾淨包裝
docker build -t-aja-java圖像。
Docker Run -P 8080:8080 -D--NAME APP-LINK銀行:主機banco image-da-a application-java
nonrun.sh
Docker Stop App
Docker Kill應用程序
Docker RM應用程序
docker rmi -f圖像application-java
Docker Stop Bank
Docker Kill Bank
Docker RM銀行
Docker RMI -F大象/銀行
因此,由於您已經創建了圖像和容器,所以
不再需要鍵入每次創建數據庫映像的命令,
創建聯繫人容器,然後創建Web應用程序的圖像,創建
每次更新項目後的容器。
只需在Docker打開類型:
sh run.sh
將立即做所有事情:
sh nonrun.sh
將立即做所有事情:
Docker將停止應用程序容器
Docker將殺死容器
刪除應用程序容器
您將從Docker應用程序中刪除圖像
Docker將停止Banco Elefante容器
Docker將殺死容器
卸下銀行容器
刪除銀行圖像
Maven將清理該項目

docker container ls
docker ps -a
docker stop <container_id | container_name>
Docker參考
我們使用git。