完美:Docker遇到Intellij IDEA这个插件,再次解放生产力~
转自:陶章好
链接: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-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项目竟然如此简单方便!
完美:Docker遇到Intellij IDEA这个插件,再次解放生产力~相关推荐
- IntelliJ IDEA插件php golang python shell docker ignore UML plantuml等插件安装
IntelliJ IDEA插件php golang python shell docker ignore UML plantuml等插件安装 有的插件,需要代理才能搜索和下载 设置代理 不然插件搜索不 ...
- Intellij IDEA必备插件,提高效率的“七种武器”!
常言道"工欲善其事必先利其器",作为一个程序员,一个好的IDE可以起到事半功倍的效果.2020 JVM 生态报告显示 Intellij IDEA 已经成为Java开发者的首选.In ...
- docker环境 快速使用elasticsearch-head插件
docker环境 快速使用elasticsearch-head插件 #elasticsearch配置 #进入elk容器 docker exec -it elk /bin/bash #head插件访问配 ...
- docker安装rabbitmq延时队列插件
docker安装rabbitMQ延时队列插件(delayed_message_exchange) 1. 查找Docker容器中的RabbitMQ镜像 docker ps -a [root@linux ...
- IntelliJ IDEA下载插件超时--解决方法
IntelliJ IDEA下载插件超时--解决方法 方法一:取消使用安全连接方式 菜单 -> IntelliJ IDEA -> Preferences -> Apprearance ...
- idea中下载插件超时_完美解决idea无法搜索下载插件的问题
IDEA无法搜索插件 最近重装了系统,需要配置好多环境,但当我在idea中搜索插件的时候,发现idea Plugins居然搜索不到插件,百度了下,有些是设置idea勾选的,不过我试了之后,然并卵... ...
- Intellij IDEA 安装插件 报 ‘plugin xxxx is incompatible‘ 解决方案
Intellij IDEA 安装插件 报 'plugin xxxx is incompatible' 解决方案 参考文章: (1)Intellij IDEA 安装插件 报 'plugin xxxx i ...
- Docker(七)--Docker数据卷管理及插件
一.Docker 数据卷管理 在实际使用过程中,我们需要把容器和数据进行隔离,因为容器在使用过程中可能随时要进行销毁,但是数据要保留下来,所以我们要做数据的持久化. 为什么要用数据卷 docker分层 ...
- 啦啦外卖独立版41.7完美运营版!全功能插件
啦啦外卖独立版41.7完美运营版!全功能插件
- IntelliJ IDEA 的插件 常用的 idea 好用 idea 插件 以此收藏防丢失
IntelliJ IDEA 的插件 常用的 idea 好用 idea 插件 以此收藏防丢失 1. AiXcoder Code completer 强烈安利!!! 它以快速的提示代码,修复某些输入错的中 ...
最新文章
- IRP和IO_STACK_LOCATION结构
- Linux内核I/O系统报错日志与硬盘故障对应关系
- java5的递归算法_Java基础入门(五)之方法以及递归算法
- excel批量更改超链接_Excel如何批量建立超链接,搭建工作台
- 【Android 安装包优化】资源混淆 ( resources.arsc 资源映射表混淆 | resources.arsc 资源映射表二进制格式分析 | 混淆全局字符串池和资源名称字符串池 )
- POJ 3687 Labeling Balls【拓扑排序】
- Spring IOC 容器源码分析 - 余下的初始化工作
- java中or和and的优先级_x86处理器汇编语言AND和OR运算符优先级
- mongodb添加创建修改时间_MongoDB数据库插入、更新和删除操作详解
- 腾讯视频主演角色弹幕怎么发
- Python:导出QQ聊天记录-让我们看看逗比群友都在聊什么
- 数据分析系列:Z 检验和 T 检验的应用及代码实现
- springboot配置mysql
- 【电脑全部浏览器显示您与网站连接不是私密连接】
- 无线路由器无法在计算机上设置,无线路由器设置管理地址无法打开解决方法
- Amazon 中国区配置 PingIdentity 身份集成实现 Redshift 数据库群集单点登录
- 网络安全实验室|网络信息安全攻防学习平台(基础关)
- 高分一号影像处理流程
- 微信公众号流量主的实际收益(本人亲测)
- 电路原理笔记整理,电路知识点总结
热门文章
- 专业好用的数据恢复软件推荐
- 数据库索引为什么用B+树实现?
- 十行代码--用python写一个USB病毒 (知乎 DeepWeaver)
- 【smart-transform】取自Atom的babeljs/cs/ts智能转es5 库
- SQL--数据--基本操作
- Linux 中 用cat 输出文件内容
- 解决异常:公共语言运行时检测到无效的程序
- learning - Haskell AND Lisp vs. Haskell OR Lisp - Programmers Stack Exchange
- 末日前的唠叨:SEO之四大要不得
- c#进销存(1):需求分析