利用Docker部署SpringBoot應用程式
我們已經安裝完成了Java環境,那麼本篇就開始怎麼部署一個SpringBoot專案到Docker中,Docker實現SpringBoot專案的部署。
首先構建一個SpingBoot專案。
進入 http://start.spring.io,使用Maven的方式快速構建一個springboot工程
建立一個HelloWorldController用於接收請求與返回響應
@RequestMapping(value = "hello") @RestController public class HelloWorldController { @RequestMapping(value = "/{msg}") public String hello(@PathVariable String msg){ return "Hello:\t"+msg; } }
啟動SpringBoot工程,傳送請求 'http://localhost:8080/hello/CainGao',檢視返回結果
當前工程構建完成。 在 pom.xml 中新增docker支援 映象名稱
<properties>
<docker.image.prefix>springboot</docker.image.prefix>
</properties>
新增外掛
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> <!-- Docker maven plugin --> <plugin> <groupId>com.spotify</groupId> <artifactId>docker-maven-plugin</artifactId> <version>0.4.13</version> <configuration> <imageName>${docker.image.prefix}/${project.artifactId}</imageName> <dockerDirectory>src/main/docker</dockerDirectory> <resources> <resource> <targetPath>/</targetPath> <directory>${project.build.directory}</directory> <include>${project.build.finalName}.jar</include> </resource> </resources> </configuration> </plugin> </plugins> </build>
建立Dockerfile
FROM openjdk:11
VOLUME /tmp
ADD demo-0.0.1-SNAPSHOT.jar /demo.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/demo.jar"]
FROM: 代表IMAGE的父映象
VALUME: 掛載本地的路徑
ADD: 為映象新增的內容
ENTRYPOINT: 執行的指令碼命令
把Dockerfile 與jar包放到同一路徑下,執行命令 docker build -t helloworld .
執行完成後檢視本地映象列表
現在即可直接使用命令 docker run -d -p 8080:8080 helloworld 啟動容器。
當然,還有更加簡單的方式進行容器的部署。直接通過maven外掛的方式來進行,本次其實我們是沒有使用的。因為需要Docker開啟遠端訪問。
當前我們使用的windows的docker desktop版,右鍵開啟Settings-->General-->勾選 Expose daemon on tcp://localhost:2375 without TLS,勾選後Docker會直接進行重啟載入。
訪問 http://localhost:2375/info 檢視是否啟動成功. 當前即可直接使用命令 mvn package docker:build 進行構建.
此刻應該大家都實現了直接基於該Dockerfile與maven的方式部署SpringBoot應用到Docker中。
關注公眾號,回覆大資料相關關鍵詞獲取相關視訊教程,如elasticsearch,即可獲取! 公眾號搜尋:<指