javascript
Docker化Spring Boot应用程序
你好朋友,
在本教程中,我們將看到如何對Spring Boot應(yīng)用程序進行Docker化。通過dockerizing意味著我們將以Docker容器的形式運行應(yīng)用程序。
以下是涉及的步驟:
1.創(chuàng)建一個Spring Boot應(yīng)用程序
2.在您的機器上安裝Docker 3.在您的項目中創(chuàng)建一個Docker文件 4.使用docker文件構(gòu)建Docker 5. Docker運行
讓我們一一看一下這些步驟。
請遵循我的教程“ 如何使用Spring Initializer創(chuàng)建Spring Boot項目”以獲取使用Spring Boot Initiailizer創(chuàng)建Spring Boot項目所需的步驟。
因此,一旦完成此步驟,就應(yīng)該準備好在工作區(qū)中使用springBootApp項目。
2.2登錄Docker Hub。如果您沒有帳戶,請單擊創(chuàng)建帳戶創(chuàng)建一個新帳戶。
2.3在下面的屏幕上單擊Download Docker Desktop。
2.4單擊“下載Windows的Docker桌面”以下載Windows的安裝程序。
要下載Mac的安裝程序,請單擊“ Mac的Docker桌面”。
2.5請按照此處提到的步驟從Installer安裝Docker,您的Docker應(yīng)該已啟動并正在運行。
來自Docker Docs
–適用于Windows的Docker桌面安裝包括:安裝提供Docker Engine ,Docker CLI客戶端, Docker Compose , Docker Machine
和Kitematic 。
–使用Docker Desktop for Windows創(chuàng)建的容器和映像在安裝它的機器上的所有用戶帳戶之間共享。 這是因為所有Windows帳戶都使用相同的VM來構(gòu)建和運行容器。
–嵌套虛擬化方案(例如在VMWare或Parallels實例上運行Windows的Docker桌面)可能會起作用,但不能保證。
在創(chuàng)建docker文件之前,讓我們了解什么是docker文件以及為什么需要它。
Docker文件是文本文件,具有一組指令或命令,這些指令或命令將由Docker守護程序執(zhí)行以創(chuàng)建Docker映像。
Docker文件示例:
來自openjdk:8 u212-b04-jdk- Stretch
COPY target / springBootApp-0.0.1-SNAPSHOT.jar springBootApp-0.0.1-SNAPSHOT.jar
展覽8080 ENTRYPOINT [“ java”,“-jar”,“ springBootApp-0.0.1-SNAPSHOT.jar”]
3.2為什么需要Docker File
通過基本執(zhí)行docker文件,我們創(chuàng)建了一個docker映像,該映像包含運行應(yīng)用程序viz所需的所有詳細信息。 應(yīng)用程序代碼,系統(tǒng)庫,工具?,F(xiàn)在,我們可以在安裝了docker的任何計算機上運行此映像,它將獲得相同的執(zhí)行環(huán)境。說我有多個環(huán)境,我的應(yīng)用程序代碼將在進入ST,ET等生產(chǎn)環(huán)境之前經(jīng)歷現(xiàn)在,如果我在任何這些(ST,ET,Prod)機器上執(zhí)行此docker映像,它將確保該應(yīng)用程序具有相同的執(zhí)行環(huán)境。
另外值得一提的是,一旦我們運行docker鏡像,它便成為了容器,我們可以通過執(zhí)行以下命令來查看容器:
docker容器ls
要在Docker文件中執(zhí)行命令或指令,我們需要在命令提示符下執(zhí)行docker build命令,如下所示:
docker build -t <標簽名稱>
docker build命令從dockerfile和“上下文”構(gòu)建docker映像。構(gòu)建的上下文是位于指定PATH或URL中的一組文件。構(gòu)建過程可以引用上下文中的任何文件。例如,我們的build可以使用COPY指令在上下文中引用文件。
在下面的示例中,PATH是當前目錄(點),因此將通過使用項目文件夾中的文件和文件夾(從我們執(zhí)行此命令的位置)來構(gòu)建上下文
docker build -t <標簽名稱>
在以下示例中,
docker build -t“ springbootapp”。
docker build命令需要從放置了docker文件的項目的根目錄執(zhí)行,并且文件名必須是dockerfile(不區(qū)分大小寫)。當我們執(zhí)行docker build時,docker文件中的所有指令都將被執(zhí)行由一個創(chuàng)建一個docker鏡像,其名稱在“標簽名稱”中給出。
我們可以通過執(zhí)行以下命令來檢查新創(chuàng)建的docker鏡像:
碼頭工人形象l s
使用URL參數(shù),我們可以提及Github或bitbucket存儲庫的URL。然后Docker構(gòu)建將遞歸地從該存儲庫中提取目錄,子目錄,文件,并將其用作構(gòu)建上下文并將其發(fā)送到Docker守護程序。
docker build -t <標簽名稱> <存儲庫URL>
在這種情況下,docker將克隆遠程存儲庫,并將克隆的存儲庫用作構(gòu)建上下文。
Docker run命令運行docker映像。 docker映像的運行時實例稱為docker容器。
docker run -p 8080:8080 <映像名稱>
默認情況下,容器不發(fā)布任何端口,這里我們將容器的端口8080映射到主機的端口8080。
因此,基本上,在docker運行之后,您的應(yīng)用程序?qū)硬⒆鳛槿萜鬟\行。
通過對我們的Java應(yīng)用程序進行泊塢處理,我們確保我們的應(yīng)用程序在DEV,ST,ET,PR上具有相同的執(zhí)行環(huán)境,以確保應(yīng)用程序行為不會因應(yīng)用程序環(huán)境(DEV,ST等)的更改而改變。
參考文獻:
https://docs.docker.com/
翻譯自: https://www.javacodegeeks.com/2019/08/dockerizing-spring-boot-application-2.html
總結(jié)
以上是生活随笔為你收集整理的Docker化Spring Boot应用程序的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 五分钟讲话稿大概需要写多少字 五分钟讲话
- 下一篇: 使用Spring Security进行简