IDEA远程部署springboot到docker
1、开放docker远程端口
vi /usr/lib/systemd/system/docker.service
docker.service可能在其他目录下,/lib/systemd/system/docker.service,根据自己的情况找到docker.service并修改,linux查找文件命令为 find -name docker.service
在 ExecStart 后添加 -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock ,如下
2、重启docker使配置生效
systemctl daemon-reload
systemctl restart docker
3、确保服务器的2375端口开发
开放端口可用
firewall-cmd --zone=public --add-port=2375/tcp --permanent
重启防火墙
systemctl restart firewalld
4、IDEA安装Docker插件并重启
5、远程连接docker
IDEA中file->setting->Build,Execution,Deployment->Docker中,配置连接到远程Docker
6、连接成功后显示远程docker容器和镜像
2020.2版的IDEA中View->Tool Windows->Service,开启Service面板,在底部栏的Service面板中就可以看到Docker远程镜像和容器
7、创建编写Dockerfile
src/main目录下创建docker文件夹,并创建Dockerfile文件
FROM java:8
ADD *.jar app.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
8、编辑Configureations
填写Dockerfile 配置的必要信息,Dockerfile的位置,镜像tag,绑定端口
目录挂载
9、pom文件中添加docker需要的插件
<?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.3.5.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.jinbin</groupId>
<artifactId>validator</artifactId>
<version>0.0.1</version>
<name>validator</name>
<description>参数验证</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>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<version>2.0.1.Final</version>
</dependency>
<dependency>
<groupId>org.hibernate.validator</groupId>
<artifactId>hibernate-validator</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<!--docker的插件-->
<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>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.8</version>
<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>
<!--阿里云maven镜像源-->
<repositories>
<repository>
<id>aliyun-repos</id>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>aliyun-plugin</id>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>
</project>
10、maven打包
11、运行docker文件
点击运行docker文件
运行成功后会创建好docker 镜像
12、启动该镜像
右键镜像,选择Create Container
填写启动参数,如容器名,端口映射,目录映射等
执行 Run 之后,在Containers中可以看到 validator 容器
访问服务器端口即可得到springboot项目的访问结果,例如: