idea 启动docker容器不重新打包(Docker遇到Intellij IDEA,Java开发提升了十倍生产力)
idea 启动docker容器不重新打包
Docker遇到Intellij IDEA,Java开发提升了十倍生产力目录
- 一、开发前准备
- 二、新建项目
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 restart docker
4.开放端口
firewall-cmd --zone=public --add-port=2375/tcp --permanent
5.Idea安装docker插件,重启
6.连接远程docker
(1) 编辑配置
(2) 填远程docker地址
(3) 连接成功,会列出远程docker容器和镜像
二、新建项目创建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 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>com.fengqi</groupId> <artifactId>dockerDemo</artifactId> <version>1.0.0</version> <relativePath>../pom.xml</relativePath> <!-- lookup parent from repository --> </parent> <groupId>com.fengqi</groupId> <artifactId>web</artifactId> <version>1.0.0</version> <name>web</name> <description>Demo project for Spring Boot</description> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.17</version> </dependency> </dependencies> <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>
(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) 运行
这里我们可以看到镜像名称为docker-demo:1.1,docker容器为docker-server
(9) 运行成功
(10) 浏览器访问
(11) 日志查看
自此通过idea 部署springboot项目到docker成功!难以想象,部署一个Javaweb项目竟然如此简单方便!
最后分享给大家相关学习教程👇:
https://www.bilibili.com/video/BV14t411z77T
IDEA教程
https://www.bilibili.com/video/BV1PZ4y1j7QK
到此这篇关于Docker遇到Intellij IDEA,Java开发提升了十倍生产力的文章就介绍到这了,更多相关Docker遇到 IDEA内容请搜索开心学习网以前的文章或继续浏览下面的相关文章希望大家以后多多支持开心学习网!
- dockerswarm使用教程(Docker Swarm集群管理的使用及原理解析)
- dockernginx怎么设置容器(docker nginx + https 子域名配置详细教程)
- docker如何查看容器目录(docker 查看容器的挂载目录操作)
- dockerfile的镜像原理(dockerfile制作apache镜像的方法)
- springboot项目部署到docker(IDEA 通过docker插件发布springboot项目的详细教程)
- docker镜像无法删除 Error:No such image:xxxxxx解决(docker镜像无法删除 Error:No such image:xxxxxx解决)
- docker时区问题和迁移数据问题(docker时区问题和迁移数据问题)
- volume怎么添加docker(docker volume删除卷的操作)
- docker和容器有什么区别(聊聊docker中容器与镜像的区别)
- docker redis安装配置(在docker中部署并启动redis的方法)
- docker端口配置(docker 无法释放端口的解决方案)
- docker插件容器使用(Docker容器开jupyter不能访问到的解决方法)
- dockerfile自定义镜像图解(Docker images导出和导入操作)
- docker启动指定容器ip(Docker每次启动容器,IP及hosts指定的操作)
- docker-compose查看服务状态(Docker+DockerCompose封装web应用的方法步骤)
- harbor 1.8安装部署(docker5 全功能harbor仓库搭建过程)
- 点赞 禹州苌庄正式撤乡建镇 未来发展不可估量(禹州苌庄正式撤乡建镇)
- 它荣获 中国生态魅力镇 称号 就在咱们禹州,一起来看看(中国生态魅力镇)
- 真牛 禹州将建成中等城市(禹州将建成中等城市)
- 被骂欺师灭祖,与郭德纲公开叫板,何云伟改名何沄伟,开始画画了(与郭德纲公开叫板)
- 相声转行影帝,被何晴抛弃,甩10年女友闪婚生子,刘威不靠谱情史(相声转行影帝被何晴抛弃)
- 岳云鹏不说相声,改行演员了 网友 快回来说相声(岳云鹏不说相声)
热门推荐
- python字典的key(Python使用dict.fromkeys快速生成一个字典示例)
- Windows2012配置SQLServer2014AlwaysOn的图解(Windows2012配置SQLServer2014AlwaysOn的图解)
- html和css制作导航条(使用Html+Css实现简易导航栏功能导航栏遇到鼠标切换背景颜色)
- _viewstart.cshtml的作用
- 树莓派vnc设置失败(树莓派安装宝塔面板后VNC无法登陆的问题说明)
- sql server事件跟踪器中常用的跟踪事件
- python 二叉树的深度遍历(python 将有序数组转换为二叉树的方法)
- typescript使用技巧(深入理解typescript中的infer关键字的使用)
- phpstudy的默认网站根目录是什么(phpstudy v8.0创建本地站点域名教程图文)
- C#匿名类
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9