一键部署应用到远程服务器,IDEA 官方 Docker 插件太顶了!
![ad3d75b1cd8971736e84708ef8d1ce87.webp](https://filescdn.proginn.com/cc22ada256dd74a6b797def8fb4a5dc2/ad3d75b1cd8971736e84708ef8d1ce87.webp)
阅读本文大概需要 5.5 分钟。
来自:https://blog.csdn.net/qq_35976271/article/details/100287663
一、 docker开启远程连接访问首先我们要开启docker的远程连接访问。保证不是docker所在的服务器,也能够远程访问docker。Linux版的docker:1、修改 docker.service 文件,添加监听端口 -H tcp://0.0.0.0:2375
vi /usr/lib/systemd/system/docker.service
![8927ccdd2825de25984bc21e5ebb177c.webp](https://filescdn.proginn.com/8f2cf042e78eaecb702e9c07fe3912af/8927ccdd2825de25984bc21e5ebb177c.webp)
systemctl daemon-reload
systemctl start docker
![b98e7ca20a66e4cdc98bcd54c7910f0b.webp](https://filescdn.proginn.com/8eded0d73005d107905d8b330e5286ea/b98e7ca20a66e4cdc98bcd54c7910f0b.webp)
安装配置idea的docker插件
- 在File --> Settings --> Plugins 在输入框中搜索Docker,选择并安装。安装完成后重启Docker。
![3c79f5423f01bdb095abb2b995048f89.webp](https://filescdn.proginn.com/536b941020d021a8f169dfed069c7ac6/3c79f5423f01bdb095abb2b995048f89.webp)
![83627306c071d7e637e56270a106b106.webp](https://filescdn.proginn.com/8c3c733a1a1614280f5a09953bb10dc1/83627306c071d7e637e56270a106b106.webp)
创建项目,并配置
一 、 创建项目
我就以一个简单的Eureka项目演示。File–> New -->Project --> Spring Initializr![58422de19664cf9b20f3b4771622ce69.webp](https://filescdn.proginn.com/e7c887def54643f47b629e8925a1df6c/58422de19664cf9b20f3b4771622ce69.webp)
![a3d77eb262c81cc00726a10c18c1f53a.webp](https://filescdn.proginn.com/7b6f3060958f89ebfb89cbbea4b9d61a/a3d77eb262c81cc00726a10c18c1f53a.webp)
![7eaf4c6b6983aefd497aa656620ab70f.webp](https://filescdn.proginn.com/db4bf94d034905cd19396932d9c25f2b/7eaf4c6b6983aefd497aa656620ab70f.webp)
二、 配置项目
1. 修改pom.xml文件,引入docker-maven-plugin插件相关配置. 改配置在标签内:
<!--使用docker-maven-plugin插件-->
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>1.0.0</version>
<!--将插件绑定在某个phase执行-->
<executions>
<execution>
<id>build-image</id>
<!--将插件绑定在package这个phase上。也就是说,
用户只需执行mvn package ,就会自动执行mvn docker:build-->
<phase>package</phase>
<goals>
<goal>build</goal>
</goals>
</execution>
</executions>
<configuration>
<!--指定生成的镜像名,这里是我们的项目名-->
<imageName>${project.artifactId}</imageName>
<!--指定标签 这里指定的是镜像的版本,我们默认版本是latest-->
<imageTags>
<imageTag>latest</imageTag>
</imageTags>
<!-- 指定我们项目中Dockerfile文件的路径-->
<dockerDirectory>${project.basedir}/src/main/resources</dockerDirectory>
<!--指定远程docker 地址-->
<dockerHost>http://127.0.0.1:2375</dockerHost>
<!-- 这里是复制 jar 包到 docker 容器指定目录配置 -->
<resources>
<resource>
<targetPath>/</targetPath>
<!--jar包所在的路径 此处配置的即对应项目中target目录-->
<directory>${project.build.directory}</directory>
<!-- 需要包含的 jar包 ,这里对应的是 Dockerfile中添加的文件名 -->
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
</configuration>
</plugin>
2. 配置项目的基本配置。( 这里不是重点,一笔带过)① 修改application.properties,添加项目相关信息。
#项目启动的端口号和IP地址
server.port=9090
eureka.instance.hostname=127.0.0.1
# 是否将其注册到注册中心, 如果不是集群环境,false
eureka.client.register-with-eureka=false
# 是否检索服务,单机情况下为false
eureka.client.fetch-registry=false
eureka.client.service-url.defaultZone=http://${eureka.instance.hostname}:${server.port}/eureka/
② 找到项目启动类,添加@EnableEurekaServer注解
@EnableEurekaServer@SpringBootApplicationpublic class EurekaserverApplication {
public static void main(String[] args) {
SpringApplication.run(EurekaserverApplication.class, args);
}}
- 添加Dockerfile文件。
FROM java:8
VOLUME /tmp
ADD *.jar app.jar
EXPOSE 9090
ENTRYPOINT [ "java", "-Djava.security.egd=file:/dev/./urandom", "-jar", "/app.jar" ]
我们添加了一个VOLUME指向“/ tmp”的内容,因为这是Spring Boot应用程序默认为Tomcat创建工作目录的地方。效果是在“/var/lib/docker”下的主机上创建一个临时文件,并将其链接到“/ tmp”下的容器。对于我们在此处编写的简单应用程序,此步骤是可选的,但如果需要在文件系统中实际编写,则对于其他Spring Boot应用程序可能是必需的。
为了减少Tomcat的启动时间,我们添加了一个指向“/dev/urandom”的系统属性作为熵源。如果您使用Tomcat(或任何其他Web服务器)的“标准”版本,则不需要更新版本的Spring Boot。
maven打包,生成镜像
使用maven打包。我们在pom.xml中配置过,如果我们是用maven的package,那么就会自动使用Dockerfile文件进行构建。 我们从控制台可以看到,已经给我构建了一个和我们项目名相同的镜像文件。我们在docker窗口可以看到,我们的镜像库中多个一个eurekaserver:latest镜像。![abc4fc54e6a331396d68361b72c482c8.webp](https://filescdn.proginn.com/e2c2817f5cb983bfa963170a17e57f04/abc4fc54e6a331396d68361b72c482c8.webp)
创建容器,项目部署到docker
我们在docker窗口中,找到我们刚才创建的镜像文件,鼠标右键,选择Create container,我们修改创建容器所需要的配置。![55c200809e52cc9a2dbffa9f296b336d.webp](https://filescdn.proginn.com/d4d307152b06fba67a2ea3dfa0c425cc/55c200809e52cc9a2dbffa9f296b336d.webp)
![466311389016159e7735168c02787ee3.webp](https://filescdn.proginn.com/a5b702f23469ce4d77604185928b2089/466311389016159e7735168c02787ee3.webp)
![c93c7b74d163dd0e8c532bb200ce3e49.webp](https://filescdn.proginn.com/780fadbe7f718431ab5215429b94da0f/c93c7b74d163dd0e8c532bb200ce3e49.webp)
![82e22f82648178f77da043556e4f8d3b.webp](https://filescdn.proginn.com/641852d31c435b8b136430b8001316b5/82e22f82648178f77da043556e4f8d3b.webp)
修改项目,一键部署
以后,我们启动项目可以按照下图所示,一键启动我们项目就会在docker容器中运行。![1d8e13b702ae7b38cc98a2026abebc7a.webp](https://filescdn.proginn.com/c062b09dbf84e46f431653716c367702/1d8e13b702ae7b38cc98a2026abebc7a.webp)
- 我们修改在前面我们创建的Docker Images 的配置。
![b1557e2971a9812875584ce85d9b55cf.webp](https://filescdn.proginn.com/fde61d58af37de4e02bd29ef39b94e3b/b1557e2971a9812875584ce85d9b55cf.webp)
![980f2dfac505335f7fa5f14c75d6fb6c.webp](https://filescdn.proginn.com/f8260050b9afac261026cad874ed2b34/980f2dfac505335f7fa5f14c75d6fb6c.webp)
![96b61c9fe6260a3ff3c2a658b62f4141.webp](https://filescdn.proginn.com/929f263a28f4078ca22042f12c6065d9/96b61c9fe6260a3ff3c2a658b62f4141.webp)
![db232956c7eb53bdd2fd8a4cf8676811.webp](https://filescdn.proginn.com/60e5647fecd3865ce9d9dab9a617160a/db232956c7eb53bdd2fd8a4cf8676811.webp)
-
https://www.cnblogs.com/hsz-csy/p/9488469.html
-
https://spring.io/guides/gs/spring-boot-docker/
推荐阅读:
手把手教你通过 Docker 部署前后端分离项目(亲测可用)
互联网初中高级大厂面试题(9个G)
内容包含Java基础、JavaWeb、MySQL性能优化、JVM、锁、百万并发、消息队列、高性能缓存、反射、Spring全家桶原理、微服务、Zookeeper......等技术栈!
⬇戳阅读原文领取!
朕已阅
评论