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内容请搜索开心学习网以前的文章或继续浏览下面的相关文章希望大家以后多多支持开心学习网!
- docker和tomcat建立连接(如何基于Dockerfile构建tomcat镜像)
- docker管理脚本(Docker可视化ui管理工具Portainer安装及使用解析)
- dockerhub镜像排行(DockerHub 镜像仓库的使用详解)
- docker配置https访问方式(docker 中配置 eureka的方法)
- docker 重启容器后数据丢失(如何恢复docker容器数据)
- docker镜像无法删除 Error:No such image:xxxxxx解决(docker镜像无法删除 Error:No such image:xxxxxx解决)
- dockercompose设置系统环境变量(使用docker compose搭建consul集群环境的例子)
- netcoredocker视频教程(Docker安装部署Net Core实现过程解析)
- docker镜像重启数据丢失(Docker数据备份恢复实现过程详解)
- net coredocker基础镜像(Docker 部署net5程序实现跨平台功能)
- docker阿里云服务器教程(Docker安装阿里云服务器和在虚拟机安装遇到的坑问题小结)
- docker最新服务条款(解决Mac Docker x509证书的问题)
- mysql允许远程访问docker(Docker部署mysql远程连接 解决2003的问题)
- docker-compose部署实例(详解docker-compose速度太慢解决方式)
- dockerservice启动参数(docker.service启动报错的一次排查详解)
- docker如何搭建gitlab(docker+gitlab+gitlab-runner部署详解)
- 散文 八月再见,九月,我在风中等你(散文八月再见九月)
- 8月再见 9月你好(8月再见)
- 魔兽世界 设计师爆料,原始版本并无PVP,跨阵营属于返璞归真(魔兽世界设计师爆料)
- 吐槽完《弧光大作战》之后,我们和设计师聊了聊魔兽首款手游的立项初衷和未来(吐槽完弧光大作战之后)
- 魔兽争霸3自定义战役少年杰雷 2(魔兽争霸3自定义战役少年杰雷)
- 今日菜价 芥兰涨幅最高 1.33 ,花菜降幅最高 3.10(今日菜价芥兰涨幅最高)
热门推荐
- docker镜像查看分层(Docker 镜像优化从1.16GB到22.4MB)
- JS中对象的属性
- UML类图概念讲解(一)
- mysql实现数据的备份的命令(Windows下MySQL定时备份脚本的实现)
- 织梦dede怎么获取当前文档的网址(织梦DedeCMS V57 111015升级出现乱码错误解决方法分享)
- 织梦数据库连接失败是什么意思(织梦上传服务器后数据连接失败问题的解决方法)
- python opencv替换背景教程(基于OpenCV python3实现证件照换背景的方法)
- sqlserver设置自动备份的注意事项(SQL server 定时自动备份数据库的图文方法)
- mysql查看视图注释(详解MySQL的sql_mode查询与设置)
- linux宝塔面板安装后怎么打开(Linux宝塔面板7.30推出文件外链分享功能)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9