Docker + Intellij IDEA,提升10倍生產(chǎ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.開(kāi)放端口
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文件
??
<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?http://maven.apache.org/xsd/maven-4.0.0.xsd">??
????<modelVersion>4.0.0modelVersion>??
??
????<groupId>docker-demogroupId>??
????<artifactId>com.demoartifactId>??
????<version>1.0-SNAPSHOTversion>??
????<parent>??
????????<groupId>org.springframework.bootgroupId>??
????????<artifactId>spring-boot-starter-parentartifactId>??
????????<version>2.0.2.RELEASEversion>??
????????<relativePath?/>??
????parent>??
??
????<properties>??
?????????<project.build.sourceEncoding>UTF-8project.build.sourceEncoding>??
?????????<project.reporting.outputEncoding>UTF-8project.reporting.outputEncoding>??
?????????<docker.image.prefix>com.demodocker.image.prefix>??
?????????<java.version>1.8java.version>??
????properties>??
????<build>??
????????<plugins>??
??????????<plugin>??
????????????<groupId>org.springframework.bootgroupId>??
????????????<artifactId>spring-boot-maven-pluginartifactId>??
??????????plugin>??
????????<plugin>??
???????????<groupId>com.spotifygroupId>??
???????????<artifactId>docker-maven-pluginartifactId>??
???????????<version>1.0.0version>??
???????????<configuration>??
??????????????<dockerDirectory>src/main/dockerdockerDirectory>??
??????????????<resources>??
????????????????<resource>??
????????????????????<targetPath>/targetPath>??
????????????????????<directory>${project.build.directory}directory>??
????????????????????<include>${project.build.finalName}.jarinclude>??
????????????????resource>??
??????????????resources>??
???????????configuration>??
????????plugin>??
????????<plugin>??
????????????<artifactId>maven-antrun-pluginartifactId>??
????????????<executions>??
?????????????????<execution>??
?????????????????????<phase>packagephase>??
????????????????????<configuration>??
????????????????????????<tasks>??
????????????????????????????<copy?todir="src/main/docker"?file="target/${project.artifactId}-${project.version}.${project.packaging}">copy>??
????????????????????????tasks>??
?????????????????????configuration>??
????????????????????<goals>??
????????????????????????<goal>rungoal>??
????????????????????goals>??
????????????????????execution>??
????????????executions>??
????????plugin>??
??
???????plugins>??
????build>??
<dependencies>??
????<dependency>??
????????<groupId>org.springframework.bootgroupId>??
????????<artifactId>spring-boot-starter-webartifactId>??
????dependency>??
????<dependency>??
??<groupId>org.springframework.bootgroupId>??
????????<artifactId>spring-boot-starter-testartifactId>??
????????<scope>testscope>??
????dependency>??
????<dependency>??
????????<groupId>log4jgroupId>??
????????<artifactId>log4jartifactId>??
????????<version>1.2.17version>??
????dependency>??
dependencies>??
project>??
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、增加配置



命令解釋?zhuān)?/strong>
Image tag : 指定鏡像名稱(chēng)和tag,鏡像名稱(chēng)為 docker-demo,tag為1.1
Bind ports : 綁定宿主機(jī)端口到容器內(nèi)部端口。格式為[宿主機(jī)端口]:[容器內(nèi)部端口]
Bind mounts : 將宿主機(jī)目錄掛到到容器內(nèi)部目錄中。
格式為[宿主機(jī)目錄](méi):[容器內(nèi)部目錄](mé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)行

這里我們可以看到鏡像名稱(chēng)為docker-demo:1.1,docker容器為docker-server
9、運(yùn)行成功

10、瀏覽器訪問(wèn)

11、日志查看

自此,通過(guò)IDEA 部署springboot項(xiàng)目到docker成功!難以想象,部署一個(gè)Javaweb項(xiàng)目竟然如此簡(jiǎn)單方便!
感謝閱讀,希望對(duì)你有所幫助?:)?
來(lái)源:juejin.im/post/5d026212f265da1b8608828b
- EOF -
PS:如果覺(jué)得我的分享不錯(cuò),歡迎大家隨手點(diǎn)贊、在看。
(完) 加我"微信"?獲取一份 最新Java面試題資料 請(qǐng)備注:666,不然不通過(guò)~
最近好文
1、Kafka 3.0重磅發(fā)布,棄用 Java 8 的支持!
最近面試BAT,整理一份面試資料《Java面試BAT通關(guān)手冊(cè)》,覆蓋了Java核心技術(shù)、JVM、Java并發(fā)、SSM、微服務(wù)、數(shù)據(jù)庫(kù)、數(shù)據(jù)結(jié)構(gòu)等等。 獲取方式:關(guān)注公眾號(hào)并回復(fù)?java?領(lǐng)取,更多內(nèi)容陸續(xù)奉上。 明天見(jiàn)(??ω??)??
