今日推荐

推荐 20 款 IDEA 主题!开源困境:Log4j2 维护者发声:没有工资,还要挨骂!!RedisJson 横空出世,性能碾压ES和Mongo!还在发愁写API文档?推荐一款阿里腾讯都在用的API管理神器!SpringBoot 参数校验/参数验证,常用方法都给你总结好了!

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-reloadsystemctl start docker

复制代码

4. 开放端口

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

5. Idea安装插件,重启

6. 连接远程docker

(1) 编辑配置

(2) 填远程docker地址

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

二、新建项目

1. 创建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 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>docker-demo</groupId><artifactId>com.demo</artifactId><version>1.0-SNAPSHOT</version><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.0.2.RELEASE</version><relativePath /></parent><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding><docker.image.prefix>com.demo</docker.image.prefix><java.version>1.8</java.version></properties><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>
<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></dependency><dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>1.2.17</version></dependency>
</dependencies>
</project>

(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) 运行

先pull基础镜像,然后再打包镜像,并将镜像部署到远程docker运行这里我们可以看到镜像名称为docker-demo:1.1,docker容器为docker-server

(9) 运行成功

(10) 浏览器访问

(11) 日志查看

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

作者:CodingTao
链接:https://juejin.cn/post/6844903865192562696
推荐文章
1、一款高颜值的 SpringBoot+JPA 博客项目2、超优 Vue+Element+Spring 中后端解决方案3、推荐几个支付项目!4、推荐一个 Java 企业信息化系统5、一款基于 Spring Boot 的现代化社区(论坛/问答/社交网络/博客)

Docker + Intellij IDEA,提升 10 倍生产力!相关推荐

  1. 提升10倍生产力:IDEA远程一键部署SpringBoot到Docker

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 IDEA是Java开发利器,springboot是Java生态中最 ...

  2. 写了 15 年代码,总结出提升 10 倍效率的三件事

    [译者注]本文作者 Matt Watson 已经写了超过 15 年的代码,也由此总结出了提升 10 倍效率的三件事.Matt 表示,一个 10 倍效率的开发人员很快就知道了他们需要做什么,要问什么问题 ...

  3. 不用亲手搭建型了!华人博士提出few-shot NAS,效率提升10倍

    [导读]你能找到最优的深度学习模型吗?还是说你会「堆积木」?最近,伍斯特理工学院华人博士在ICML 2021上发表了一篇文章,提出一个新模型few-shot NAS,效率提升10倍,准确率提升20%! ...

  4. 学到了!程序员大神用这招让开发效率直接提升 10 倍!!

    CSDN Chrome插件推出的这一个多月以来,我们陆续听到了很多用户的声音,有人给了我们很多的鼓励,还有人给了我们很好的建议.我们针对各位用户爸爸的使用反馈对插件进行了一次次的优化,现在我们的插件已 ...

  5. nginx 配置静态文件目录_nginx缓存静态资源,只需几个配置提升10倍页面加载速度...

    nginx缓存静态资源,只需几个配置提升10倍页面加载速度 首先我们看图说话 这是在没有缓存的情况下,这个页面发送了很多静态资源的请求: 可以看到,静态资源占用了整个页面加载用时的90%以上,而且这个 ...

  6. 单线程和多线程的区别_谷歌下载东西超慢?开启Chrome多线程下载,下载速度提升10倍+...

    用谷歌浏览器下载速度慢,浏览器采用的是单线程下载,"一人难敌四手"的浏览器自然斗不过多线程了.所以说浏览器想要提高下载速度,就得采用多线程的下载方式,不过到目前为止,Chrome多 ...

  7. 使用Apache Spark让MySQL查询速度提升10倍以上

    作者:Alexander Rubin 链接:http://coyee.com/article/11012-how-apache-spark-makes-your-slow-mysql-queries- ...

  8. 重磅官宣:Nacos2.0性能提升10倍

    简介:​Nacos2.0 作为一个跨代版本,彻底解决了 Nacos1.X 的性能问题,将性能提升了 10 倍. 作者:席翁 继 Nacos 1.0 发布以来,Nacos 迅速被成千上万家企业采用,并构 ...

  9. 云原生时代的“精益实践”:企业效能提升10倍“杀手锏

    简介:1月15日,国内知名"精益产品开发"研究和实践者.阿里云云效资深技术专家何勉在阿里云<云计算情报局>线上直播栏目中,分享其对研发新模式的最新思考,提出" ...

最新文章

  1. java用关键字 指明继承关系_【填空题】java中用关键字 指明继承关系、用关键字 指明接口实现。...
  2. 系统无法正确检测到盘符
  3. Canvas、Paint、Path
  4. 【PAT乙级】1029 旧键盘 (20 分)
  5. 一文带你快速读懂.NET CLI
  6. 电网调度优化学习笔记:不考虑经济损耗的调度方式(算例代码求解)
  7. Oracle 11gR2 RAC 中的 Grid Plug and Play(GPnP) 是什么?
  8. oracle nvarchar2,varchar2,char,nchar说明
  9. 好多人都说存储过程很难?认真看这篇文章就够了
  10. 可为空的对象必须具有一个值_前端:这里有8个常见的JavaScript经典问题,总有一个你不会的...
  11. ps法线贴图插件_法线与置换贴图原理讲解以及烘焙制作!
  12. nginx 一个请求发给多台机器_一个机器人可以同时为多台数控机床上下料吗?东智力衡...
  13. MonoBehaviour Lifecycle(生命周期/脚本执行顺序)
  14. JSP自定义标签rtexprvalue属性 1
  15. 使用“swap技巧”除去多余的容量
  16. win下安装nessus
  17. 115网盘摇奖的位置变了~
  18. SpringBoot在thymeleaf模板引擎下集成layDate日期插件
  19. 基于Scrapy框架爬取豆瓣《复联4》影评,并生成词云
  20. DirectShow入门

热门文章

  1. Android 程序适应多种多分辨率
  2. 恢复误删数据(SQL Server 2000)--Log Explorer
  3. IAP升级功能编写初期的一些困惑与疑问---完成功能后的总结
  4. 在Fedora 14上安装Sun JDK 6 (转载)
  5. Day04-经典卷积神经网络解读
  6. Bitcoin 中的挖矿算法(5) 难度值举例说明
  7. [密码学] 因子分解
  8. Cache与主存的三种映射
  9. 设计模式--桥(Bridge)模式
  10. buu Alice与Bob