点击上方 好好学java ,选择 星标 公众号

重磅资讯、干货,第一时间送达
今日推荐:牛人 20000 字的 Spring Cloud 总结,太硬核了~
作者:陶章好
链接:https://juejin.im/post/5d026212f265da1b8608828b

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文件

<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-demotag1.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项目竟然如此简单方便!

这是本人在这几年及春招的总结,历时3个月,我觉得很全面了,对于面试很有帮助,目前,本人已经拿到了腾讯等大厂offer,进入到大厂不是梦想,github 地址:

https://github.com/OUYANGSIHAI/JavaInterview

这么辛苦总结,给个star好不好。 点击阅读原文,直达

Java 开发提升十倍生产力:idea 远程一键部署 springboot 到 Docker相关推荐

  1. docker php 一键部署_Java开发提升十倍生产力:Idea远程一键部署springboot到Docker

    IDEA是Java开发利器,springboot是Java生态中最流行的微服务框架,docker是时下最火的容器技术,那么它们结合在一起会产生什么化学反应呢? 一.开发前准备 1.Docker安装 可 ...

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

最新文章

  1. mysql日志是什么格式_Mysql日志的三种格式
  2. 【14】GO语言的接口类型
  3. java写入文件编码格式为ansi_Windows10 bat批处理删除 快速打开文件夹 固定到开始菜单或任务栏...
  4. 脚本修改IIS连接数
  5. 计算机专业毕业后现状,计算机专业怎么样_毕业生道出现状_“千万”别学
  6. 【机器学习】集成学习--AdaBoost
  7. 小工具发布(2008-01-25更新,HTML、URL编解码工具)
  8. 西交利物浦大学企业协同平台案例分享
  9. Project Euler Problem 48: Self powers
  10. 阿里云如何设置content-type,微软的在线预览无法使用问题
  11. 力推个p站相关站点 画师美图和各种工具方法
  12. 工作中遇到的小技巧 一(暂停更新)
  13. 禾匠二开系列之兑换码禁用以后启用功能
  14. WOW.js插件使用
  15. 电脑怎么用计算机打开指令,快速打开电脑上的计算器
  16. 给osg配置bullet物理引擎
  17. c++ 已知直线外一点,求对称点
  18. 一款强大的API接口文档管理工具(Smart-Doc + Torna)
  19. 图片文件转二进制数据
  20. 光影精灵5完全拆解全程图解_惠普光影精灵5值得买吗?惠普光影精灵5绿刃版游戏本深度拆解评测...

热门文章

  1. 转:构建高性能ASP.NET站点 第五章—性能调优综述(中篇)
  2. [PHP]用PHPUnit进行行为驱动开发(Behaviour-Driven Development)
  3. register_chrdev_region源码理解
  4. C++ Primer 5th笔记(chap 16 模板和泛型编程)函数模板显式实参
  5. 编译原理 之 解释器
  6. 计算机网络考试有感 2019 山东大学
  7. 攻防世界Reverse第六题open-source
  8. [密码学] RSA比特安全性
  9. 自动化测试之键盘操作和select操作
  10. 直接载入内存中的DLL