您当前的位置:首页 > 网站建设 > 网站维护
| php | asp | css | H5 | javascript | Mysql | Dreamweaver | Delphi | 网站维护 | 帝国cms | React | 考试系统 | ajax | jQuery |

Docker遇到Intellij IDEA,Java开发提升了十倍生产力

51自学网 2022-07-04 11:38:17
  网站维护

Idea是Java开发利器,SpringBoot是Java生态中最流行的微服务框架,docker是时下最火的容器技术,那么它们结合在一起会产生什么化学反应呢?

一、开发前准备

1. Docker的安装可以参考https://docs.docker.com/install/

2. 配置docker远程连接端口

 vi /usr/lib/systemd/system/docker.service

找到 ExecStart,在最后面添加 -H tcp://0.0.0.0:2375,如下图所示

3. 重启docker

systemctl daemon-reload systemctl restart docker

4.开放端口

firewall-cmd --zone=public --add-port=2375/tcp --permanent

5.Idea安装docker插件,重启

6.连接远程docker

(1) 编辑配置

(2) 填远程docker地址

(3) 连接成功,会列出远程docker容器和镜像

 二、新建项目

创建springboot项目

项目结构图

(1) 配置pom文件

<?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>com.fengqi</groupId>    <artifactId>dockerDemo</artifactId>    <version>1.0.0</version>    <relativePath>../pom.xml</relativePath> <!-- lookup parent from repository -->  </parent>  <groupId>com.fengqi</groupId>  <artifactId>web</artifactId>  <version>1.0.0</version>  <name>web</name>  <description>Demo project for Spring Boot</description>   <dependencies>    <dependency>      <groupId>org.springframework.boot</groupId>      <artifactId>spring-boot-starter</artifactId>    </dependency>     <dependency>      <groupId>org.springframework.boot</groupId>      <artifactId>spring-boot-starter-test</artifactId>      <scope>test</scope>    </dependency>    <dependency>      <groupId>org.springframework.boot</groupId>      <artifactId>spring-boot-starter-web</artifactId>    </dependency>    <dependency>      <groupId>log4j</groupId>      <artifactId>log4j</artifactId>      <version>1.2.17</version>    </dependency>  </dependencies>   <build>    <plugins>      <plugin>        <groupId>org.springframework.boot</groupId>        <artifactId>spring-boot-maven-plugin</artifactId>      </plugin>      <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>        <artifactId>maven-antrun-plugin</artifactId>        <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>

(2) 在src/main目录下创建docker目录,并创建Dockerfile文件

FROM openjdk:8-jdk-alpineADD *.jar app.jarENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

(3) 在resource目录下创建application.properties文件

logging.config=classpath:logback.xmllogging.path=/home/developer/app/logs/server.port=8990

(4) 创建DockerApplication文件

@SpringBootApplicationpublic class DockerApplication { public static void main(String[] args) { SpringApplication.run(DockerApplication.class, args); }}

(5) 创建DockerController文件

@RestControllerpublic class DockerController { static Log log = LogFactory.getLog(DockerController.class); @RequestMapping("/") public String index() { log.info("Hello Docker!"); return "Hello Docker!"; }}

(6) 增加配置

命令解释

Image tag : 指定镜像名称和tag,镜像名称为 docker-demo,tag为1.1

Bind ports : 绑定宿主机端口到容器内部端口。格式为[宿主机端口]:[容器内部端口]

Bind mounts : 将宿主机目录挂到到容器内部目录中。格式为[宿主机目录]:[容器内部目录]

这个springboot项目会将日志打印在容器 /home/developer/app/logs/ 目录下,将宿主机目录挂载到容器内部目录后,那么日志就会持久化容器外部的宿主机目录中。

(7) Maven打包

(8) 运行

这里我们可以看到镜像名称为docker-demo:1.1,docker容器为docker-server

(9) 运行成功

(10) 浏览器访问

(11) 日志查看

自此通过idea 部署springboot项目到docker成功!难以想象,部署一个Javaweb项目竟然如此简单方便!

最后分享给大家相关学习教程👇:

https://www.bilibili.com/video/BV14t411z77T

IDEA教程

https://www.bilibili.com/video/BV1PZ4y1j7QK


下载地址:
Nginx+SpringBoot实现负载均衡的示例
ServerSocket默认邦定IP实现过程详解
51自学网,即我要自学网,自学EXCEL、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。
京ICP备13026421号-1