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 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.0modelVersion><groupId>docker-demogroupId><artifactId>com.demoartifactId><version>1.0-SNAPSHOTversion><parent><groupId>org.springframework.bootgroupId><artifactId>spring-boot-starter-parentartifactId><version>2.0.2.RELEASEversion><relativePath />parent><properties><project.build.sourceEncoding>UTF-8project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8project.reporting.outputEncoding><docker.image.prefix>com.demodocker.image.prefix><java.version>1.8java.version>properties><build><plugins><plugin><groupId>org.springframework.bootgroupId><artifactId>spring-boot-maven-pluginartifactId>plugin><plugin><groupId>com.spotifygroupId><artifactId>docker-maven-pluginartifactId><version>1.0.0version><configuration><dockerDirectory>src/main/dockerdockerDirectory><resources><resource><targetPath>/targetPath><directory>${project.build.directory}directory><include>${project.build.finalName}.jarinclude>resource>resources>configuration>plugin><plugin><artifactId>maven-antrun-pluginartifactId><executions><execution><phase>packagephase><configuration><tasks><copy todir="src/main/docker" file="target/${project.artifactId}-${project.version}.${project.packaging}">copy>tasks>configuration><goals><goal>rungoal>goals>execution>executions>plugin>plugins>build><dependencies><dependency><groupId>org.springframework.bootgroupId><artifactId>spring-boot-starter-webartifactId>dependency><dependency><groupId>org.springframework.bootgroupId><artifactId>spring-boot-starter-testartifactId><scope>testscope>dependency><dependency><groupId>log4jgroupId><artifactId>log4jartifactId><version>1.2.17version>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文件

@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、运行先pull基础镜像,然后再打包镜像,并将镜像部署到远程docker运行这里我们可以看到镜像名称为docker-demo:1.1,docker容器为docker-server9、运行成功10、浏览器访问11、日志查看自此,通过IDEA 部署springboot项目到docker成功!难以想象,部署一个Javaweb项目竟然如此简单方便!End

扩展阅读

如何让你的SQL运行得更快

SpringBoot 应用部署于外置 Tomcat 容器

7大绝招帮你轻轻松松提升MySQL性能

这可能是最为详细的Docker入门吐血总结

Intellij IDEA神器那些让人爱不释手的小技巧

作者:陶章好

来源:https://juejin.im/post/5d026212f265da1b8608828b

docker php 一键部署_Java开发提升十倍生产力:Idea远程一键部署springboot到Docker相关推荐

  1. docker 远程连接 文件看不到_开发提升十倍生产力: IDEA 远程一键部署 Spring Boot 到 Docker...

    一.开发前准备 二.新建项目 <Java 2019 超神之路> <Dubbo 实现原理与源码解析 -- 精品合集> <Spring 实现原理与源码解析 -- 精品合集&g ...

  2. docker 远程连接 文件看不到_Java 开发提升十倍生产力:IDEA 远程一键部署 Spring Boot 到 Docker...

    一.开发前准备 二.新建项目 <Java 2019 超神之路> <Dubbo 实现原理与源码解析 -- 精品合集> <Spring 实现原理与源码解析 -- 精品合集&g ...

  3. Java 开发提升十倍生产力:idea 远程一键部署 springboot 到 Docker

    点击上方 好好学java ,选择 星标 公众号 重磅资讯.干货,第一时间送达 今日推荐:牛人 20000 字的 Spring Cloud 总结,太硬核了~ 作者:陶章好 链接:https://juej ...

  4. 如何用 IDEA 提升十倍开发效率?

    工欲善其事,必先利其器.想要提升编程开发效率,必须选择一款顺手的开发工具. JetBrains 公司提供了一系列功能强大.风格统一的开发工具,深受开发者喜爱.其中,IDEA 是面向 Java 开发的专 ...

  5. Nacos 2.0 性能提升十倍,贡献者 80% 以上来自阿里之外

    来源 | 阿里巴巴云原生公众号 3 月 20 日,Nacos 2.0 正式发布.Nacos 是阿里巴巴在 2018 年开源的一个更易于构建云原生应用的动态服务发现.配置管理和服务管理平台,也可以理解为 ...

  6. 腾讯云三大自研数据库之一 TBase 开源后首次重磅升级,复杂查询性能最高提升十倍

    7月13日,腾讯云自研分布式HTAP数据库TBase正式发布最新开源版本.这款被欧洲航天局作为" Gaia Mission"行星探索项目的核心数据库,迎来了自开源以来的重磅升级.该 ...

  7. TBase数据库开源后重磅升级,复杂查询性能最高提升十倍

    这款被欧洲航天局作为" Gaia Mission"行星探索项目的核心数据库,迎来了自开源以来的重磅升级.7月13日,腾讯云自研分布式HTAP数据库TBase正式发布最新开源版本,该 ...

  8. 如何将 iOS 工程打包速度提升十倍以上

    如何将 iOS 工程打包速度提升十倍以上 过慢的编译速度有非常明显的副作用.一方面,程序员在等待打包的过程中可能会分心,比如刷刷朋友圈,看条新闻等等.这种认知上下文的切换会带来很多隐形的时间浪费.另一 ...

  9. 必须掌握的20个Excel技巧,让你的工作效率提升十倍

    知识的广度来自知识的深度,学习如果不成体系那是多可怕的一件事儿,希望我们在未来的学习道路上坚守初心,不要给自己留下遗憾,以自己喜欢的方式生活,做自己喜欢做的事,宠爱自己,做一个独一无二的自己! 对于文 ...

最新文章

  1. 什么是mysql的游标_数据库中的游标到底是什么意思
  2. @async注解_SpringBoot中Async异步方法和定时任务介绍
  3. Mac OS系统版本与XCode版本的关系
  4. liunx php的项目地址,在 Linux 配置 PHP 项目
  5. 大数据技术周报第 007 期
  6. BTREE这种Mysql默认的索引方式,具有普遍的适用性
  7. Mac如何设置允许和iCloud之间使用接力功能?
  8. shell export path_学习Shell编程
  9. Spring整合MyBatis之SqlSession对象的产生
  10. 英特尔首席工程师吴甘沙:一切弯路都是直路
  11. 大华条码秤数据同步发送数据格式
  12. 网易数帆王佰平:我的 Envoy Maintainer 之路
  13. [Idea] Add Abbreviation的使用
  14. python 群发邮件数量限制_python群发邮件
  15. 计算机毕业设计SSM_旅游系统【附源码数据库】
  16. 游戏私服的配置与防御选择
  17. 安装mpg123音乐播放器
  18. 键盘录入、提高成绩(金山打字通)
  19. 服务器系统945主板,IT教程:945主板最高装什么cpu
  20. Hybrid App(混合编程)

热门文章

  1. 使用Python requests post上传图片及示例demo
  2. 怎么在linux下使用ftp服务器,怎么在Linux下建立安全的FTP服务器?
  3. 测试一体机风扇分贝软件,9款小风扇深度横评,风力、噪音测试加拆解,告诉你谁最值得买...
  4. java 0 1背包_浅谈java实现背包算法(0-1背包问题)
  5. 中文验证码 php_还在苦恼验证码怎么实现?看看这个验证码组件合集,你想要的都有...
  6. python修改mac地址_python利用_winreg模块制作MAC地址修改工具
  7. ps抠头发插件_彻底告别抠图的烦恼!PS自动抠图超级插件Topaz ReMask大放送
  8. react 遍历对象_React 源码系列 | React Children 详解
  9. 从逻辑回归到最大熵模型
  10. Spring Cloud构建微服务架构:分布式服务跟踪(跟踪原理)【Dalston版】