IDEA中使用Docker插件
在Windows上如果没有安装docker for windows的话,是没办法构建Docker镜像的。这种情况下,如果要通过fat jar构建docker镜像的话,只能将fat jar上传到安装了docker服务的Linux服务器上,然后编写Dockerfile构建。这种方式比较麻烦,这里记录下如何通过IDEA的Docker插件远程构建Docker镜像。
Docker开启远程访问
假如我在CentOS虚拟机上安装好了Docker,IP地址为192.168.33.11,我们可以修改Docker的配置,开启远程访问权限:
1 2 |
# 修改Docker配置 vi /lib/systemd/system/docker.service |
修改的地方如下图所示:
修改保存后,重启Docker服务:
1 2 |
systemctl daemon-reload systemctl restart docker.service |
重启后,验证下2375端口是否是通的:
1 |
curl 192.168.33.11:2375/info |
如果返回了一坨JSON数据,说明????。
IDEA使用Docker插件
IDEA Ultimate版本已经默认安装了Docker插件(没有的话去插件市场下载安装下就可以了)。点击IDEA -> File -> Settings… -> Build,Execution,Deployment -> Docker:
填写远程Docker地址,如果显示Connection Successfully说明连接远程Docker服务成功。
新建一个简单的Spring Boot项目,pom如下所示:
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 |
<?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.2.1.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>cc.mrbird</groupId> <artifactId>demo</artifactId> <version>0.0.1</version> <name>demo</name> <description>Demo project for Spring Boot</description> <properties> <java.version>1.8</java.version> </properties> <dependencies> <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> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project> |
然后用maven打包,打包后项目根目录的target下会有如下fat jar:
在项目根目录下新建Dockerfile,内容如下所示:
1 2 3 4 5 |
FROM openjdk:8u212-jre MAINTAINER MrBird [email protected] COPY target/demo-0.0.1.jar /demo-0.0.1.jar ENTRYPOINT ["java", "-jar", "/demo-0.0.1.jar"] |
然后点击IDEA -> Run -> Edit Configrations…
选择远程的Docker服务,填写镜像标签内容,点击保存后,运行:
通过日志来看,镜像构建是成功的:
可以看到远程服务器上已经包含了该Docker镜像:
可以到服务器上验证下: