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

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-alpine
ADD *.jar app.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

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

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

(4) 创建DockerApplication文件

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

(5) 创建DockerController文件

@RestController
public 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

到此这篇关于Docker遇到Intellij IDEA,Java开发提升了十倍生产力的文章就介绍到这了,更多相关Docker遇到 IDEA内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • java通过Idea远程一键部署springboot到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 start docker 4. 开放端口 firewall-cmd --zon

  • IDEA 通过docker插件发布springboot项目的详细教程

    一.编写Dockerfile文件 (1)右键项目名,新建一个文本文件,把名字改成Dockerfile,不用后缀.放在项目根目录下. (2)填写Dockerfile内容 FROM openjdk:8 VOLUME /tmp ADD target/*.jar app.jar ENTRYPOINT ["java","-jar","/app.jar"] FROM openjdk:8  // 表示基础环境是jdk8 ADD target/*.jar app

  • 基于idea把springboot项目部署到docker

    这篇文章主要介绍了基于idea把springboot项目部署到docker,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 一.idea安装docker插件 1.安装 2.配置 备注:要使docker可以通过2375端口访问,需要配置docker vim /lib/systemd/system/docker.service 修改如下 3.配置容器 Dockerfile文件(此处为了方便,将Dockerfile文件放到根目录下面) FROM jav

  • 浅析SpringBoot打包上传到docker并实现多实例部署(IDEA版)

    最近有一个朋友问我有没有玩过docker,回答起来底气不是很足 ^ - ^ (刚开始玩cloud的时候接触过,玩过一会,后面在实际开发中比较少用,所以基本上可以说是忘记了.),今天花了点时间整理之前的笔记以及整理走一个流程,记录一下吧,下次玩得时候C V 就好啦~ 1. Docker的安装以及开启远程访问 1.1 安装 # 检查虚拟机内核版本,必须是3.10及以上 uname -r # 安装docker yum install docker # 输入y确认安装 # 启动docker system

  • 在Idea中使用Docker部署SpringBoot项目的详细步骤

    前言 项目需要: 安装Dockeridea中安装docker插件,并配置docker一个SpringBoot项目创建Dockerfile 一.下载.安装.配置Docker下载Docker 下载地址:官网下载 Docker 安装 一直下一步就行 配置路径:Settings–General 勾选 Expose daemon on tcp://localhost:2375 without TLS 设置镜像,提高下载镜像的速度https://xaiqlt1z.mirror.aliyuncs.com 测试

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

    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 构建简单的 java 开发编译环境的方法详解

    目前 Java 语言的版本很多,除了常用的 Java 8,有一些遗留项目可能使用了 Java 7,也可能有一些比较新的的项目使用了 Java 10 以上的版本.如果想切换自己本地的 Java 开发环境,折腾起来还是需要花费一些时间的,并且日后在不同版本间切换每次都要折腾一次. Docker 的出现让我们维护不同版本的开发编译环境变得简单,如果你还不知道什么是 Docker 可以看看 Docker 入门介绍.我们可以采用两种方式来构建 java 的开发环境,一种是在容器内编译运行,一种是在容器外编

  • Java开发工具IntelliJ IDEA安装图解

    这篇文章主要介绍了Java开发工具IntelliJ IDEA安装图解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 > 开发工具概述 IDEA是一个专门针对Java的集成开发工具(IDE),由Java语言编写.所以,需要有JRE运行环境并配置好环境变量. 它可以极大地提升我们的开发效率.可以自动编译,检查错误.在公司中,使用的就是IDEA进行开发. IDEA软件安装 进入官网http://www.jetbrains.com/选择需要的版本下载.

  • IntelliJ IDEA安装插件阿里巴巴Java开发手册(Alibaba Java Coding Guidelines)

    以前看到过个:Java开发手册(阿里巴巴-公开版),这是个pdf文档,里面描述了一些Java开发的规约,里面确实有很多好用的规约,要是在学校就有机会看看的话,那么,在毕业之后,实际工作中就会少很多坑.现在,阿里巴巴又一次对这个文档进行了升级,直接变成了一个插件.你需要的就是:知道有这么个插件,然后,还得安装这个插件,那么以后,你在写代码的时候,这个插件就会自动的纠正你在写代码的时候的一些很low的不规范代码. 下面看怎么在这个 IntelliJ IDEA 上安装这个插件. 通过Jetbrains

  • 提升java开发效率工具lombok使用争议

    目录 引言 什么是 lombok 如何使用 lombok 的原理和滥用 引言 对使用 lombok 还是有很多争议的,有些公司不建议使用,有些公司又大量使用. 我们的想法是:可以使用,但是不要滥用. 什么是 lombok Lombok是 一种Java™实用工具,可用来帮助开发人员消除Java的冗长代码,尤其是对于简单的Java对象(POJO) . 它通过注释实现这一目的. 通过在开发环境中实现Lombok,开发人员可以节省构建诸如hashCode() 和 equals()这样的方法以及以往用来分

  • java开发接口吞吐量提升10多倍技巧

    目录 背景 分析过程 定位“慢”原因 继续定位“慢”的原因 定位CPU使用率高的原因 总结 TODO 背景 公司的一个ToB系统,因为客户使用的也不多,没啥并发要求,就一直没有经过压测.这两天来了一个“大客户”,对并发量提出了要求:核心接口与几个重点使用场景单节点吞吐量要满足最低500/s的要求. 当时一想,500/s吞吐量还不简单.Tomcat按照100个线程,那就是单线程1S内处理5个请求,200ms处理一个请求即可.这个没有问题,平时接口响应时间大部分都100ms左右,还不是分分钟满足的事

  • Mac M1 Java 开发环境配置详解

    JDK 配置 目前 Zulu JDK 支持 M1芯片,下载Zulu JDK 下载后点击安装,在控制台输入java -version ~ % java -version openjdk version "11.0.10" 2021-01-19 LTS OpenJDK Runtime Environment Zulu11.45+27-CA (build 11.0.10+9-LTS) OpenJDK 64-Bit Server VM Zulu11.45+27-CA (build 11.0.1

  • [JAVA]十四种Java开发工具点评

    在计算机开发语言的历史中,从来没有哪种语言象Java那样受到如此众多厂商的支持,有如此多的开发工具,Java菜鸟们如初入大观园的刘姥姥,看花了眼,不知该何种选择.的确,这些工具各有所长,都没有绝对完美的,就算是老鸟也很难做出选择.在本文中我简要介绍了常见的十四种Java开发工具的特点,管中窥"器",希望能对大家有所帮助. 1.JDK (Java Development Kit) 2.Java Workshop 3.NetBeans 与Sun Java Studio 5 4.Borlan

  • Linux下Java开发环境搭建以及第一个HelloWorld

    想在Linux进行JAVA开发吗?环境如何搭建,第一个HelloWorld如何实现,下面马上奉献: 1环境搭建     1.1 Java JDK 的安装     Java JDK 是java编译和运行的必要环境,所以首先必须安装这一软件包,方法如下:     1)下载JDK压缩包,注意看好版本是x86还是x64,windows的还是           linux,要搞清楚,我下的是jdk-7u13-linux-i586.tar.gz:     2)解压压缩包,并将解压后的目录放到/usr/li

  • 《阿里巴巴 Java开发手册》读后感小结

    前言 只有光头才能变强 前一阵子一直在学Redis,结果在黄金段位被虐了,暂时升不了段位了,每天都拿不到首胜(好烦). 趁着学校校运会,合理地给自己放了一个小长假,然后就回家了.回到家才发现当时618买了一堆书,这堆书还有没撕包装的呢....于是我翻出了最薄的一本<阿里巴巴 Java开发手册> 这本书一共就90多页,一天就可以通读完了,看完之后我又来水博文了. 注意: 书上很多的规范是可以用IDE来避免的,也有很多之前已经知道的了. 所以,这篇文章只记录我认为比较重要,或者说是我之前开发时没有

随机推荐