新聞中心
Idea是Java開發(fā)利器,SpringBoot是Java生態(tài)中最流行的微服務(wù)框架,docker是時(shí)下最火的容器技術(shù),那么它們結(jié)合在一起會(huì)產(chǎn)生什么化學(xué)反應(yīng)呢?

一、開發(fā)前準(zhǔn)備
1.Docker的安裝可以參考https://docs.docker.com/install/
2.配置docker遠(yuǎn)程連接端口
- vi /usr/lib/systemd/system/docker.service
找到 ExecStart,在最后面添加 -H tcp://0.0.0.0:2375,如下圖所示:
3.重啟docker
- systemctl daemon-reload
- systemctl start docker
4.開放端口
- firewall-cmd --zone=public --add-port=2375/tcp --permanent
5.Idea安裝插件,重啟
6.連接遠(yuǎn)程docker
(1) 編輯配置
(2) 填遠(yuǎn)程docker地址
(3) 連接成功,會(huì)列出遠(yuǎn)程docker容器和鏡像
二、新建項(xiàng)目
1.創(chuàng)建springboot項(xiàng)目
項(xiàng)目結(jié)構(gòu)圖:
(1) 配置pom文件
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
4.0.0 docker-demo com.demo 1.0-SNAPSHOT org.springframework.boot spring-boot-starter-parent 2.0.2.RELEASE UTF-8 UTF-8 com.demo 1.8 org.springframework.boot spring-boot-maven-plugin com.spotify docker-maven-plugin 1.0.0 src/main/docker / ${project.build.directory} ${project.build.finalName}.jar maven-antrun-plugin package run org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-test test log4j log4j 1.2.17
(2) 在src/main目錄下創(chuàng)建docker目錄,并創(chuàng)建Dockerfile文件
- FROM openjdk:8-jdk-alpine
- ADD *.jar app.jar
- ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
(3) 在resource目錄下創(chuàng)建application.properties文件
- logging.config=classpath:logback.xml
- logging.path=/home/developer/app/logs/
- server.port=8990
(4) 創(chuàng)建DockerApplication文件
- @SpringBootApplication
- public class DockerApplication {
- public static void main(String[] args) {
- SpringApplication.run(DockerApplication.class, args);
- }
- }
(5) 創(chuàng)建DockerController文件
- @RestController
- public class DockerController {
- static Log log = LogFactory.getLog(DockerController.class);
- @RequestMapping("/")
- public String index() {
- log.info("Hello Docker!");
- return "Hello Docker!";
- }
- }
(6) 增加配置
命令解釋
- Image tag : 指定鏡像名稱和tag,鏡像名稱為 docker-demo,tag為1.1
- Bind ports : 綁定宿主機(jī)端口到容器內(nèi)部端口。格式為[宿主機(jī)端口]:[容器內(nèi)部端口]
- Bind mounts : 將宿主機(jī)目錄掛到到容器內(nèi)部目錄中。格式為[宿主機(jī)目錄]:[容器內(nèi)部目錄]。這個(gè)springboot項(xiàng)目會(huì)將日志打印在容器
- /home/developer/app/logs/ 目錄下,將宿主機(jī)目錄掛載到容器內(nèi)部目錄后,那么日志就會(huì)持久化容器外部的宿主機(jī)目錄中。
(7) Maven打包
(8) 運(yùn)行
先pull基礎(chǔ)鏡像,然后再打包鏡像,并將鏡像部署到遠(yuǎn)程docker運(yùn)行
這里我們可以看到鏡像名稱為docker-demo:1.1,docker容器為docker-server
(9) 運(yùn)行成功
(10) 瀏覽器訪問
(11) 日志查看
自此通過idea 部署springboot項(xiàng)目到docker成功!難以想象,部署一個(gè)Javaweb項(xiàng)目竟然如此簡(jiǎn)單方便!
當(dāng)前文章:當(dāng)Docker遇上IDEA ,生產(chǎn)力徹底炸裂了
標(biāo)題鏈接:http://www.dlmjj.cn/article/dpcscoh.html


咨詢
建站咨詢
