今日推荐

推荐 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. IBM押注沃森人工智能技术 未来6年或达170亿美元
  2. HashMap和LinkedHashMap的比较使用
  3. 获取图片中感兴趣区域的信息(Matlab实现)
  4. [elk]elasticsearch dsl语句
  5. 关于C++子类父类成员函数的覆盖和隐藏
  6. wp博客写文章500错误_500多个博客文章教我如何撰写出色的文章
  7. 数据库类型少_DELETE与DROP 在数据库中的使用方法和区别
  8. java 浏览文件_Java浏览文件对话框
  9. 如何看Spring源码
  10. mysql必知必会样例表_《SQL必知必会》笔记1-样例表说明及建表语句
  11. 【计算机网络】知识梳理(二)物理层
  12. Linux -- 手动配置静态IP
  13. [转载]长篇连载:《三国演义》的“性之病”(之二)
  14. 7月16日数据科学库学习笔记——matplotlib 绘制散点图、条形图、直方图
  15. 护眼灯哪个牌子好?推荐五款热门颜值高护眼灯
  16. rtsp海康威视地址格式
  17. 新一代互联网安全管理体系研究框架:阳光互联网倡议
  18. 小伙熬夜用C++开发泡泡堂游戏,网友直呼:666!
  19. 文章一直被拒,没有送审,也没给出拒稿原因和建议原因不过这几点
  20. 需求基本流程和要求——公司培训

热门文章

  1. Android 下拉刷新
  2. html年月日下拉联动菜单 年月日三下拉框联动
  3. 55种网页常用小技巧(javascript) (转)
  4. ST17H26对接RC522读IC卡
  5. 区块链与边缘计算(2)功能介绍
  6. Bitcoin0.21版 公链开发(4) Apache windows上安装
  7. C++ Primer 5th笔记(chap 12 动态内存)智能指针概述
  8. 数学建模——智能优化之遗传算法详解Python代码
  9. Select多路复用
  10. 使用 cmd、PowerShell 等用命令行的方式创建文件及文件夹