IDEA是Java最常用的開發工具,而Docker是當下最火的部署容器。
1.配置docker遠程連接端口
1
|
vi /usr/lib/systemd/system/docker .service |
找到 ExecStart,在最后面添加 -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock
重啟docker
1
2
|
systemctl daemon-reload systemctl start docker |
開放端口2375
1
|
firewall-cmd --zone=public --add-port=2375 /tcp --permanent |
2.IDEA安裝Docker插件
1. File->Settings->Plugins 搜索 docker integration
安裝成功后重啟IDEA
3.創建Springboot項目,配置連接遠程docker pom.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
|
<?xml version= "1.0" encoding= "UTF-8" ?> <project xmlns= "http://maven.apache.org/POM/4.0.0" xmlns:xsi= "http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation= "http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd" > <modelVersion>4.0.0< /modelVersion > <parent> <groupId>org.springframework.boot< /groupId > <artifactId>spring-boot-starter-parent< /artifactId > <version>2.4.2< /version > <relativePath/> <!-- lookup parent from repository --> < /parent > <groupId>com.docker< /groupId > <artifactId>idea-docker-demo< /artifactId > <version>0.0.1-SNAPSHOT< /version > <name>idea-docker-demo< /name > <description>Demo project for Spring Boot< /description > <properties> <project.build.sourceEncoding>UTF-8< /project .build.sourceEncoding> <project.reporting.outputEncoding>UTF-8< /project .reporting.outputEncoding> <docker.image.prefix>com.docker< /docker .image.prefix> <java.version>1.8< /java .version> < /properties > <dependencies> <dependency> <groupId>org.springframework.boot< /groupId > <artifactId>spring-boot-starter< /artifactId > < /dependency > <dependency> <groupId>org.springframework.boot< /groupId > <artifactId>spring-boot-starter-web< /artifactId > < /dependency > <dependency> <groupId>org.springframework.boot< /groupId > <artifactId>spring-boot-starter- test < /artifactId > <scope> test < /scope > < /dependency > <!-- Lombok --> <dependency> <groupId>org.projectlombok< /groupId > <artifactId>lombok< /artifactId > < /dependency > <dependency> <groupId>log4j< /groupId > <artifactId>log4j< /artifactId > <version>1.2.17< /version > < /dependency > < /dependencies > <build> <plugins> <plugin> <groupId>org.springframework.boot< /groupId > <artifactId>spring-boot-maven-plugin< /artifactId > < /plugin > <plugin> <groupId>com.spotify< /groupId > <artifactId>docker-maven-plugin< /artifactId > <version>1.0.0< /version > <configuration> <dockerDirectory>src /main/docker < /dockerDirectory > <resources> <resource> <targetPath>/< /targetPath > <directory>${project.build.directory}< /directory > <include>${project.build.finalName}.jar< /include > < /resource > < /resources > < /configuration > < /plugin > <plugin> <artifactId>maven-antrun-plugin< /artifactId > <executions> <execution> <phase>package< /phase > <configuration> <tasks> <copy todir= "src/main/docker" file = "target/${project.artifactId}-${project.version}.${project.packaging}" >< /copy > < /tasks > < /configuration > <goals> <goal>run< /goal > < /goals > < /execution > < /executions > < /plugin > < /plugins > < /build > < /project > |
application.properties
1
2
3
4
|
server.port=8887 logging.config=classpath:logback.xml logging.path= /home/docker_demo/app/logs/ |
logback.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
<?xml version= "1.0" encoding= "UTF-8" ?> <configuration debug= "false" scan= "true" scanPeriod= "1 seconds" > <contextName>logback< /contextName > <property name= "log.path" value= "/home/docker_demo/app/logs/docker_demo.log" /> <appender name= "console" class= "ch.qos.logback.core.ConsoleAppender" > <encoder> <pattern>%d{HH:mm:ss.SSS} %contextName [%thread] %-5level %logger{36} - %msg%n< /pattern > < /encoder > < /appender > <appender name= "file" class= "ch.qos.logback.core.rolling.RollingFileAppender" > < file >${log.path}< /file > <rollingPolicy class= "ch.qos.logback.core.rolling.TimeBasedRollingPolicy" > <fileNamePattern>${log.path}.%d{yyyy-MM- dd }.zip< /fileNamePattern > < /rollingPolicy > <encoder> <pattern>% date %level [%thread] %logger{36} [% file : %line] %msg%n < /pattern > < /encoder > < /appender > <root level= "info" > <appender-ref ref= "console" /> <appender-ref ref= "file" /> < /root > < /configuration > |
配置docker遠程地址
在項目下創建Dockerfile文件
Dockerfile內容:
1
2
3
|
FROM openjdk: 8 -jdk-alpine ADD *.jar app.jar ENTRYPOINT [ "java" , "-Djava.security.egd=file:/dev/./urandom" , "-jar" , "/app.jar" ] |
增加docker配置
命令解釋
Image tag : 指定鏡像名稱和tag,鏡像名稱為 docker-demo,tag為1.1
Bind ports : 綁定宿主機端口到容器內部端口。格式為[宿主機端口]:[容器內部端口]
Bind mounts : 將宿主機目錄掛到到容器內部目錄中。格式為[宿主機目錄]:[容器內部目錄]。這個springboot項目會將日志打印在容器
/home/docker_demo/app/logs/ 目錄下,將宿主機目錄掛載到容器內部目錄后,那么日志就會持久化容器外部的宿主機目錄中。
3.項目打包部署到docker
項目啟動成功
可以直接訪問接口,查看日志文件
總結:通過idea部署springboot項目到docker簡單方便!
到此這篇關于IDEA 配置Docker的過程的文章就介紹到這了,更多相關IDEA 配置Docker內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!
原文鏈接:https://blog.csdn.net/qq_35354529/article/details/113845718