前言:
现在docker是我们常用的服务部署方式了,在微服务中对于springboot部署到docker一般有两种方式
1、把jar包扔给运维同学,由他们进行编写dockerfile或者其他方式部署。(不推荐)
2、由开发同学处理后把镜像或者容器上传到服务器(企业级常用方式)
下面我们就通过demo来看下方式二
1、docker开放2375端口
开放2375端口
vim /lib/systemd/system/docker.service
将13行左右内容
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
修改为下面
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock
重启docker服务
systemctl daemon-reload
systemctl restart docker
防火墙放开2375端口,如果是云服务器记录配置安全规则
放开后可以在浏览器输入http://host:2375/version测试或者
curl http://host:2375/version
2、IDEA测试连接
3、maven中增加plugin
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>${docker-maven-plugin.version}</version>
<configuration>
<dockerHost>http://xxx.xxx.xxx.xxx:2375</dockerHost>
<imageName>${docker.image.prefix}/${project.artifactId}</imageName>
<imageTags>
<imageTag>${project.version}</imageTag>
<imageTag>latest</imageTag>
</imageTags>
<!--强制在每次新的构建上覆盖镜像tags-->
<forceTags>true</forceTags>
<baseImage>${docker.baseImage}</baseImage>
<!--配置挂载目录-->
<volumes>${docker.volumes}</volumes>
<entryPoint>["sh", "-c", "java ${docker.java.opts} ${docker.java.security.egd} -jar /${project.build.finalName}.jar"]</entryPoint>
<resources>
<resource>
<targetPath>/</targetPath>
<directory>${project.build.directory}</directory>
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
</configuration>
</plugin>
4、生成镜像
5、创建容器并测试结果
我们可以在Services控制页面看到已经生成了镜像,右键根据此镜像创建容器,并启动测试
亦可以直接使用docker命令启动
docker run -d -p 8010:8010 –name docker-demo jarvan/springboot-demo-docker
浏览器输入:http://xxx.xxx:8081/ 进行测试
6、Dockerfile方式
在src/main/docker目录下建立Dockerfile文件
dockerfile内容
FROM java:8
VOLUME /test
ADD springboot-demo-docker-0.0.1-SNAPSHOT.jar /app.jar
ENTRYPOINT ["java", "-Djava.security.egd=file:/dev/./urandom", "-jar", "app.jar"]
maven的plugin插件内容更改
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>${docker-maven-plugin.version}</version>
<configuration>
<dockerHost>http://xxx.xxx.xxx.xxx:2375</dockerHost>
<imageName>${docker.image.prefix}/${project.artifactId}</imageName>
<imageTags>
<imageTag>${project.version}</imageTag>
<imageTag>latest</imageTag>
</imageTags>
<!--强制在每次新的构建上覆盖镜像tags-->
<forceTags>true</forceTags>
<baseImage>${docker.baseImage}</baseImage>
<!--使用dockerfile方式,在指定目录下创建Dockerfile文件-->
<dockerDirectory>src/main/docker</dockerDirectory>
<resources>
<resource>
<targetPath>/</targetPath>
<directory>${project.build.directory}</directory>
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
</configuration>
</plugin>
7、源代码
标签:Springboot,xxx,jar,IDEA,project,version,2375,docker From: https://blog.51cto.com/u_11906056/7060666代码已上传github https://github.com/JarvanBest/springboot-demo-docker.git