Docker技術發展爲當前流行的微服務提供了更加便利的環境,使用SpringBoot+Docker部署和發佈應用,其實也是一件比較簡單的事情。當前,前提是得有Docker的基礎。java
文末有項目源碼的github地址nginx
本人最先的一篇文章,就是教你們如何使用Spring Initialise工具,快速的建立一個SpringBoot項目,若是還不懂的,能夠翻一下本人的第一篇文章,這裏就很少講了。下面貼一下主要的文件內容:git
pom文件的大部份內容這裏就不貼了,主要貼關鍵的內容,主要的就是maven-docker的打包插件:github
<!-- Docker maven plugin -->
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>1.0.0</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>
<!-- Docker maven plugin -->
複製代碼
這裏的docker.image.prefix值爲:spring
<docker.image.prefix>happy</docker.image.prefix>
複製代碼
dockerDirectory配置了Dockerfile的路徑爲:src/main/docker,因此,咱們須要在src/main目錄下,建立docker目錄,而後建立Dockerfile文件。總體的目錄結構以下:docker
Dockerfile文件內容以下:shell
FROM openjdk
VOLUME /tmp ADD springboot-docker-0.0.1-SNAPSHOT.jar app.jar ENTRYPOINT ["java","-jar","/app.jar"] 複製代碼
到這裏,已經完成了SpringBoot+Docker的配置了,接下來就是打包部署了。springboot
爲了方便測試,能夠添加一個GET請求的接口,以下:bash
@SpringBootApplication
@RestController
public class SpringbootDockerApplication {
public static void main(String[] args) {
SpringApplication.run(SpringbootDockerApplication.class, args);
}
@GetMapping(value = "/test")
public Object test() {
return "Hello SpringBoot with Docker!";
}
}
複製代碼
使用maven構建Dockerfile的命令以下:(先把maven和Docker都設置爲國內的源,不然須要build比較長的時間)app
mvn package docker:build
複製代碼
在springboot-docker目錄根路徑下執行此命令便可。
須要本地安裝了Docker纔可以打包成功,不然會報錯。關於Docker的安裝,Linux的用戶能夠根據我以前的文章進行安裝,其餘系統的用戶能夠自行搜索安裝便可。推薦使用Linux。
好比本人,Docker是安裝在Linux虛擬機上的,直接把springboot-docker目錄拷貝到Linux機器上:
執行打包命令,輸入以下:
看到BUILD SUCCESS即表示構建成功了,這時候就能夠經過docker images命令,查看咱們構建的鏡像了:
鏡像構建完以後,咱們還能夠把它推到Docker的倉庫上。這裏就不展開來說了。
命令以下:
docker run -it -d --name springboot -p 8080:8080 happy/springboot-docker
複製代碼
這裏建立而且啓動一個容器,命名爲springboot,映射端口爲8080:8080
能夠經過以下命令查看啓動日誌:
docker logs springboot
複製代碼
源碼我放在github上,歡迎你們關注:
搜索公衆號【Happyjava】,回覆【電子書】和【視頻】,便可獲取大量優質電子書和大數據、kafka、nginx、MySQL等視頻資料
本文發佈於掘金號【Happyjava】。Happy的掘金地址:juejin.im/user/5cc289…,Happy的我的博客:(blog.happyjava.cn)[blog.happyjava.cn]。歡迎轉載,但須保留此段聲明。