Docker部署SpringBoot項目

使用docker部署SpringBoot項目
springboot整合docker部署(兩種構(gòu)建Docker鏡像方式)

1.創(chuàng)建springboot項目

創(chuàng)建springboot項目
package com.eangulee.demo.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
public class HelloController {
    @RequestMapping("/")
    @ResponseBody
    public String hello() {
        return "Hello, SpringBoot With Docker";
    }
}


2.打包springboot項目為jar包



3. 編寫Dockerfile文件

# Docker image for springboot file run
# VERSION 0.0.1
# Author: eangulee
# 基礎(chǔ)鏡像使用java
FROM java:8
# 作者
MAINTAINER eangulee <eangulee@gmail.com>
# VOLUME 指定了臨時文件目錄為/tmp。
# 其效果是在主機(jī) /var/lib/docker 目錄下創(chuàng)建了一個臨時文件,并鏈接到容器的/tmp
VOLUME /tmp 
# 將jar包添加到容器中并更名為app.jar
ADD demo-0.0.1-SNAPSHOT.jar app.jar 
# 運(yùn)行jar包
RUN bash -c 'touch /app.jar'
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

解釋下這個配置文件:

VOLUME 指定了臨時文件目錄為/tmp。其效果是在主機(jī) /var/lib/docker 目錄下創(chuàng)建了一個臨時文件,并鏈接到容器的/tmp。該步驟是可選的,如果涉及到文件系統(tǒng)的應(yīng)用就很有必要了。/tmp目錄用來持久化到 Docker 數(shù)據(jù)文件夾,因為 Spring Boot 使用的內(nèi)嵌 Tomcat 容器默認(rèn)使用/tmp作為工作目錄
項目的 jar 文件作為 “app.jar” 添加到容器的
ENTRYPOINT 執(zhí)行項目 app.jar。為了縮短 Tomcat 啟動時間,添加一個系統(tǒng)屬性指向 “/dev/./urandom” 作為 Entropy Source

如果是第一次打包,它會自動下載java 8的鏡像作為基礎(chǔ)鏡像,以后再制作鏡像的時候就不會再下載了。

4. 部署文件

在服務(wù)器新建一個docker文件夾,將maven打包好的jar包和Dockerfile文件復(fù)制到服務(wù)器的docker文件夾下


docker文件夾

5. 制作鏡像

執(zhí)行下面命令, 看好,最后面有個"."點(diǎn)!

docker build -t springbootdemo4docker .

-t 參數(shù)是指定此鏡像的tag名


制作完成后通過docker images命令查看我們制作的鏡像

6.啟動容器

[root@localhost docker]# docker run -d -p 8080:8085 springbootdemo4docker
-d參數(shù)是讓容器后臺運(yùn)行 
-p 是做端口映射,此時將服務(wù)器中的8080端口映射到容器中的8085(項目中端口配置的是8085)端口

7. 訪問網(wǎng)站

直接瀏覽器訪問: http://你的服務(wù)器ip地址:8080/




好了,下一步就是學(xué)習(xí)springboot+mysql+redis如何在docker上如何部署了。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容