使用docker部署SpringBoot項(xiàng)目
springboot整合docker部署(兩種構(gòu)建Docker鏡像方式)
1.創(chuàng)建springboot項(xiàng)目
創(chuàng)建springboot項(xiàng)目
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項(xiàng)目為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ù)文件夾携添,因?yàn)?Spring Boot 使用的內(nèi)嵌 Tomcat 容器默認(rèn)使用/tmp作為工作目錄
項(xiàng)目的 jar 文件作為 “app.jar” 添加到容器的
ENTRYPOINT 執(zhí)行項(xiàng)目 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(項(xiàng)目中端口配置的是8085)端口
7. 訪問網(wǎng)站
直接瀏覽器訪問: http://你的服務(wù)器ip地址:8080/
好了转质,下一步就是學(xué)習(xí)springboot+mysql+redis如何在docker上如何部署了园欣。