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

一、開發(fā)前準備
1.Docker的安裝可以參考https://docs.docker.com/install/
2.配置docker遠程連接端口
- 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.連接遠程docker
(1) 編輯配置
(2) 填遠程docker地址
(3) 連接成功,會列出遠程docker容器和鏡像
二、新建項目
1.創(chuàng)建springboot項目
項目結構圖:
(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 : 綁定宿主機端口到容器內(nèi)部端口。格式為[宿主機端口]:[容器內(nèi)部端口]
- Bind mounts : 將宿主機目錄掛到到容器內(nèi)部目錄中。格式為[宿主機目錄]:[容器內(nèi)部目錄]。這個springboot項目會將日志打印在容器
- /home/developer/app/logs/ 目錄下,將宿主機目錄掛載到容器內(nèi)部目錄后,那么日志就會持久化容器外部的宿主機目錄中。
(7) Maven打包
(8) 運行
先pull基礎鏡像,然后再打包鏡像,并將鏡像部署到遠程docker運行
這里我們可以看到鏡像名稱為docker-demo:1.1,docker容器為docker-server
(9) 運行成功
(10) 瀏覽器訪問
(11) 日志查看
自此通過idea 部署springboot項目到docker成功!難以想象,部署一個Javaweb項目竟然如此簡單方便!
當前名稱:當Docker遇上IDEA ,生產(chǎn)力徹底炸裂了
文章源于:http://www.5511xx.com/article/dpcscoh.html


咨詢
建站咨詢
