Java 开发提升十倍生产力:idea 远程一键部署 springboot 到 Docker
点击上方 好好学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-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项目竟然如此简单方便!
这是本人在这几年及春招的总结,历时3个月,我觉得很全面了,对于面试很有帮助,目前,本人已经拿到了腾讯等大厂offer,进入到大厂不是梦想,github 地址:
https://github.com/OUYANGSIHAI/JavaInterview
这么辛苦总结,给个star好不好。 点击阅读原文,直达
Java 开发提升十倍生产力:idea 远程一键部署 springboot 到 Docker相关推荐
- docker php 一键部署_Java开发提升十倍生产力:Idea远程一键部署springboot到Docker
IDEA是Java开发利器,springboot是Java生态中最流行的微服务框架,docker是时下最火的容器技术,那么它们结合在一起会产生什么化学反应呢? 一.开发前准备 1.Docker安装 可 ...
- docker 远程连接 文件看不到_开发提升十倍生产力: IDEA 远程一键部署 Spring Boot 到 Docker...
一.开发前准备 二.新建项目 <Java 2019 超神之路> <Dubbo 实现原理与源码解析 -- 精品合集> <Spring 实现原理与源码解析 -- 精品合集&g ...
- docker 远程连接 文件看不到_Java 开发提升十倍生产力:IDEA 远程一键部署 Spring Boot 到 Docker...
一.开发前准备 二.新建项目 <Java 2019 超神之路> <Dubbo 实现原理与源码解析 -- 精品合集> <Spring 实现原理与源码解析 -- 精品合集&g ...
- 提升10倍生产力:IDEA远程一键部署SpringBoot到Docker
点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 IDEA是Java开发利器,springboot是Java生态中最 ...
- 如何用 IDEA 提升十倍开发效率?
工欲善其事,必先利其器.想要提升编程开发效率,必须选择一款顺手的开发工具. JetBrains 公司提供了一系列功能强大.风格统一的开发工具,深受开发者喜爱.其中,IDEA 是面向 Java 开发的专 ...
- Nacos 2.0 性能提升十倍,贡献者 80% 以上来自阿里之外
来源 | 阿里巴巴云原生公众号 3 月 20 日,Nacos 2.0 正式发布.Nacos 是阿里巴巴在 2018 年开源的一个更易于构建云原生应用的动态服务发现.配置管理和服务管理平台,也可以理解为 ...
- 如何将 iOS 工程打包速度提升十倍以上
如何将 iOS 工程打包速度提升十倍以上 过慢的编译速度有非常明显的副作用.一方面,程序员在等待打包的过程中可能会分心,比如刷刷朋友圈,看条新闻等等.这种认知上下文的切换会带来很多隐形的时间浪费.另一 ...
- 腾讯云三大自研数据库之一 TBase 开源后首次重磅升级,复杂查询性能最高提升十倍
7月13日,腾讯云自研分布式HTAP数据库TBase正式发布最新开源版本.这款被欧洲航天局作为" Gaia Mission"行星探索项目的核心数据库,迎来了自开源以来的重磅升级.该 ...
- TBase数据库开源后重磅升级,复杂查询性能最高提升十倍
这款被欧洲航天局作为" Gaia Mission"行星探索项目的核心数据库,迎来了自开源以来的重磅升级.7月13日,腾讯云自研分布式HTAP数据库TBase正式发布最新开源版本,该 ...
最新文章
- mysql日志是什么格式_Mysql日志的三种格式
- 【14】GO语言的接口类型
- java写入文件编码格式为ansi_Windows10 bat批处理删除 快速打开文件夹 固定到开始菜单或任务栏...
- 脚本修改IIS连接数
- 计算机专业毕业后现状,计算机专业怎么样_毕业生道出现状_“千万”别学
- 【机器学习】集成学习--AdaBoost
- 小工具发布(2008-01-25更新,HTML、URL编解码工具)
- 西交利物浦大学企业协同平台案例分享
- Project Euler Problem 48: Self powers
- 阿里云如何设置content-type,微软的在线预览无法使用问题
- 力推个p站相关站点 画师美图和各种工具方法
- 工作中遇到的小技巧 一(暂停更新)
- 禾匠二开系列之兑换码禁用以后启用功能
- WOW.js插件使用
- 电脑怎么用计算机打开指令,快速打开电脑上的计算器
- 给osg配置bullet物理引擎
- c++ 已知直线外一点,求对称点
- 一款强大的API接口文档管理工具(Smart-Doc + Torna)
- 图片文件转二进制数据
- 光影精灵5完全拆解全程图解_惠普光影精灵5值得买吗?惠普光影精灵5绿刃版游戏本深度拆解评测...
热门文章
- 转:构建高性能ASP.NET站点 第五章—性能调优综述(中篇)
- [PHP]用PHPUnit进行行为驱动开发(Behaviour-Driven Development)
- register_chrdev_region源码理解
- C++ Primer 5th笔记(chap 16 模板和泛型编程)函数模板显式实参
- 编译原理 之 解释器
- 计算机网络考试有感 2019 山东大学
- 攻防世界Reverse第六题open-source
- [密码学] RSA比特安全性
- 自动化测试之键盘操作和select操作
- 直接载入内存中的DLL