IDEA集成docker部署springboot项目的全过程

目录
  • 1.IDEA下载docker插件
  • 2.云服务器docker
    • 2.1 docker的安装
    • 2.2 停止docker服务
    • 2.3 docker配置文件修改
    • 2.4 刷新配置文件
    • 2.5 启动docker服务
    • 2.6 防火墙增加2375端口
    • 2.7 阿里云增加安全组规则
    • 2.8 测试远程HTTP连接
  • 3. maven项目打包
    • 3.1 打包插件
    • 3.2 资源文件的打包及打包后的位置
    • 3.3 docker插件
    • 3.4 clean、install和docker build
  • 4.遇到的坑
  • 5.参考

1.IDEA下载docker插件

此处不再赘述,和其他插件一样安装

2.云服务器docker

说明:本人服务器使用的是centOS 7

2.1 docker的安装

https://www.jb51.net/article/213611.htm

2.2 停止docker服务

为了防止restart docker服务出现错误,保险起见,最好先停止docker服务,再修改配置文件。

停止docker之前要先停止正在运行的容器,否则后面启动容器也有可能出错。

停止运行容器:

docker stop [container_id]

然后停止docker服务

systemctl stop docker

2.3 docker配置文件修改

为了使用HTTP方式让IDEA连上服务器上的docker,需修改docker的配置文件,修改内容如下:

vim /usr/lib/systemd/system/docker.service

修改Execstart 这行内容,将其替换为以下内容,目的是开放2375端口,能进行HTTP远程连接:

ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock

2.4 刷新配置文件

命令如下:

systemctl daemon-reload

测试配置文件是否生效,在服务器端输入如下命令,如果出现JSON字符串内容,则文件生效

curl http://127.0.0.1:2375/version

2.5 启动docker服务

命令如下:

systemctl restart docker

2.6 防火墙增加2375端口

命令如下:

firewall-cmd --zone=public --add-port=2375/tcp --permanent

重启防火墙:

firewall-cmd --reload

2.7 阿里云增加安全组规则

这里要注意在实例的页面进入安全组,然后配置规则,开放2375端口

2.8 测试远程HTTP连接

在本地浏览器输入 http://127.0.0.1:2375/version ,同理, 如果出现JSON字符串,则能进行HTTP连接。

到此, 可以用IDEA进行集成dokcer了。

3. maven项目打包

3.1 打包插件

在pom文件中添加springboot打包插件

<plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
</plugin>

3.2 资源文件的打包及打包后的位置

除了打包java源文件,还需要将资源文件打包,如xml/yml/properties/html等文件。但要注意html文件打包的位置,要放在META-INF/resources目录,否则启动jar包后,访问不到html页面。

<resources>
    <resource>
        <directory>src/main/java</directory>
        <!--这里我将mapper文件放在了java目录下 所以需要声明编译位置-->
        <includes>
            <include>**/*.xml</include>
        </includes>
        <filtering>true</filtering>
    </resource>
    <resource>
        <!--声明yml配置文件编译位置-->
        <directory>src/main/resources</directory>
    </resource>
    <resource>
        <!--声明html文件编译位置 并将编译后的文件放入指定位置-->
        <directory>src/main/webapp</directory>
        <targetPath>META-INF/resources</targetPath>
    </resource>
</resources>

3.3 docker插件

需要注意两个地方,一是docker镜像名字前面需要有一个前缀,其组成是[前缀]:[镜像名]:[版本号],二是指定镜像名时不得包含大写字母。

项目信息中name和version都要用到

<groupId>org.team</groupId>
<artifactId>coolmeeting</artifactId>
<version>1.0-SNAPSHOT</version>
<name>coolmeeting</name>
<description>docker start meetingMS</description>

<properties>
    <java.version>1.8</java.version>
    <docker.image.prefix>team</docker.image.prefix>
</properties>

<plugins>
    <plugin>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>
    </plugin>
    <!-- tag::plugin[] -->
    <plugin>
        <groupId>com.spotify</groupId>
        <artifactId>docker-maven-plugin</artifactId>
        <version>1.0.0</version>
        <configuration>
            <dockerHost>http://127.0.0.1:2375</dockerHost>
            <!--镜像名字 不能含有大写字母-->
            <imageName>${docker.image.prefix}/${project.artifactId}</imageName>
            <!--dockerfile所在位置-->
            <dockerDirectory>${project.basedir}/src/main/docker</dockerDirectory>
            <resources>
                <resource>
                    <targetPath>/</targetPath>
                    <!--target所在位置-->
                    <directory>${project.build.directory}</directory>
                    <!--将jar包和Dockerfile放在统一目录-->
                    <include>${project.build.finalName}.jar</include>
                </resource>
            </resources>
        </configuration>
    </plugin>
    <!-- end::plugin[] -->

    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <configuration>
            <skipTests>true</skipTests>
        </configuration>
    </plugin>
</plugins>

Dockerfile文件如下,注意创建该文件时D要大写 , /meetingMS.jar是别名,方便书写

FROM java:8
VOLUME /tmp
ADD coolmeeting-1.0-SNAPSHOT.jar /meetingMS.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/meetingMS.jar"]

3.4 clean、install和docker build

先用maven进行clean和install,然后用maven插件docker进行build

打包后的文件目录:

启动容器

设置启动参数

4.遇到的坑

  • 镜像名称问题(不能含大写字母)
  • springboot配置文件application.yml无法打包
  • 打包后html页面访问不到

5.参考

springboot打成jar包无法访问jsp或者html,404错误

关于yml或者properties文件没有被扫描到

运行Jar包时指定启动端口

stackover

IDEA整合Docker,快捷部署SpringBoot应用

IDEA集成Docker的快捷部署

到此这篇关于IDEA集成docker部署springboot项目的文章就介绍到这了,更多相关IDEA集成docker部署springboot项目内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Linux+Docker+SpringBoot+IDEA一键自动化部署的详细步骤

    Linux+Docker+SpringBoot+IDEA一键自动化部署的步骤 记录从打包到服务器配置上线全流程 安装docker 详细步骤请戳这里 用yum源安装用yum源安装 查看是否已安装docker列表 yum list installed | grep docke 安装docker yum -y install docker -y表示不询问安装,直到安装成功,安装完后再次查看安装列表 开放2375端口,开启远程访问 vim /usr/lib/systemd/system/docker.s

  • IDEA 通过docker插件发布springboot项目的详细教程

    一.编写Dockerfile文件 (1)右键项目名,新建一个文本文件,把名字改成Dockerfile,不用后缀.放在项目根目录下. (2)填写Dockerfile内容 FROM openjdk:8 VOLUME /tmp ADD target/*.jar app.jar ENTRYPOINT ["java","-jar","/app.jar"] FROM openjdk:8  // 表示基础环境是jdk8 ADD target/*.jar app

  • IDEA2021.2配置docker如何将springboot项目打成镜像一键发布部署

    之前博客已经谈到配置docker远程链接服务,这里再介绍如何在IDEA中配置docker,将项目部署到服务器上 前文 Docker之开启远程访问的实现 idea2021激活教程 https://www.yuque.com/docs/share/b996d27e-c888-45f2-bb1e-f6db5efe2485?# https://www.jb51.net/article/178193.htm 去插件中心安装Docker插件,安装完重启IDEA.这个简单 配置连接远程docker,打开Doc

  • IDEA 配合 Dockerfile 部署 SpringBoot 工程的注意事项

    准备 SpringBoot 工程 1.新建 SpringBoot 项目,默认的端口是 8080 ,新建 Controller 和 Mapping @RestController public class HelloController { @GetMapping("hello") public String hello() { return "hello world!"; } } 注意,需要在 pom 中添加 spring-boot-maven-plugin 插件,

  • 基于idea把springboot项目部署到docker

    这篇文章主要介绍了基于idea把springboot项目部署到docker,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 一.idea安装docker插件 1.安装 2.配置 备注:要使docker可以通过2375端口访问,需要配置docker vim /lib/systemd/system/docker.service 修改如下 3.配置容器 Dockerfile文件(此处为了方便,将Dockerfile文件放到根目录下面) FROM jav

  • 在Idea中使用Docker部署SpringBoot项目的详细步骤

    前言 项目需要: 安装Dockeridea中安装docker插件,并配置docker一个SpringBoot项目创建Dockerfile 一.下载.安装.配置Docker下载Docker 下载地址:官网下载 Docker 安装 一直下一步就行 配置路径:Settings–General 勾选 Expose daemon on tcp://localhost:2375 without TLS 设置镜像,提高下载镜像的速度https://xaiqlt1z.mirror.aliyuncs.com 测试

  • java通过Idea远程一键部署springboot到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 --zon

  • IDEA集成docker部署springboot项目的全过程

    目录 1.IDEA下载docker插件 2.云服务器docker 2.1 docker的安装 2.2 停止docker服务 2.3 docker配置文件修改 2.4 刷新配置文件 2.5 启动docker服务 2.6 防火墙增加2375端口 2.7 阿里云增加安全组规则 2.8 测试远程HTTP连接 3. maven项目打包 3.1 打包插件 3.2 资源文件的打包及打包后的位置 3.3 docker插件 3.4 clean.install和docker build 4.遇到的坑 5.参考 1.

  • Docker 部署 SpringBoot 项目整合 Redis 镜像做访问计数示例代码

    最终效果如下 大概就几个步骤 1.安装 Docker CE 2.运行 Redis 镜像 3.Java 环境准备 4.项目准备 5.编写 Dockerfile 6.发布项目 7.测试服务 环境准备 系统:Ubuntu 17.04 x64 Docker 17.12.0-ce IP:45.32.31.101 一.安装 Docker CE 国内不建议使用:"脚本进行安装",会下载安装很慢,使用步骤 1 安装,看下面的链接:常规安装方式 1.常规安装方式 Ubuntu 17.04 x64 安装

  • Centos8.3、docker部署springboot项目实战案例分析

    引言 目前k8s很是火热,我也特意买了本书去学习了一下,但是k8s动辄都是成百上千的服务器运维,对只有几台服务器的应用来说使用k8s就有点像大炮打蚊子.只有几台服务器的应用运维使用传统的tomcat部署很繁琐,效率不高,动辄十几分钟部署一台服务,使用jenkins部署又太过复杂,斟酌许久我还是选择了使用docker+dockerFile的方式部署.这种方式部署简单高效. docker安装 curl -fsSL https://get.docker.com | bash -s docker --m

  • Docker部署springboot项目到腾讯云的实现步骤

    目录 服务器的配置 安装MySql 将springboot项目打成jar包 编写Dockfile文件 访问 删除重做(更新)镜像 服务器的配置 服务器配置总结为三个,防火墙,端口,和安全组 1.防火墙 查看防火墙状态 firewall-cmd --state 没有开启则开启防火墙 systemctl start firewalld.service 2.端口 添加对外开放的端口 firewall-cmd --zone=public --add-port=端口号/tcp --permanent fi

  • Docker部署Spring-boot项目的示例代码

    一.基础Spring-boot快速启动 1.1 快速启动 pom.xml加入如下依赖 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.5.RELEASE</version> </parent> <properties&g

  • 使用Docker部署SpringBoot项目的实现方法

    Docker 技术发展为微服务落地提供了更加便利的环境,使用 Docker 部署 Spring Boot 其实非常简单,这篇文章我们就来简单学习下. 首先构建一个简单的 Spring Boot 项目,然后给项目添加 Docker 支持,最后对项目进行部署. 一个简单 Spring Boot 项目 在 pom.xml 中 ,使用 Spring Boot 2.0 相关依赖 <parent> <groupId>org.springframework.boot</groupId>

  • Mac下部署springBoot项目到Docker中(demo)

    SpringCloud + Docker 的便利和强大真的超乎想象,我已经入坑了-好了,不说废话,记录一个简单的 Demo 供其他同学排坑. 前言 惯例不能丢,先上源代码:docker-demo 这个项目的代码是我执行在Docker上部署SpringBoot的java代码和Dockerfile配置文件,相关的执行命令语句也记录在上. 操作流程 本地部署 在 Mac 上安装启动 Docker.详细步骤请参考:MacOS安装Docker clone 项目:docker-demo,然后依次执行: do

  • docker部署springboot和vue项目的实现步骤

    A. docker 部署 springboot项目 一.springboot项目编译打包 二.在项目根目录创建Dockerfile文件 FROM openjdk:8-jdk-alpine VOLUME /tmp ADD ./target/demo-0.0.1-SNAPSHOT.jar demo.jar RUN sh -c 'touch /demo.jar' ENTRYPOINT ["sh", "-c", "java $JAVA_OPTS -Djava.se

  • docker安装tomcat并部署Springboot项目war包的方法

    说来也简单,直接上教程吧,博主 1.首先在启动docker service docker start 2.拉取tomcat镜像. docker pull tomcat:8-jdk8 如果不加后面的8-jdk8  标签的话,会默认拉取latest,也就是最新的官方版本 3.安装完成后,做作容器,并启动tomcat docker run --name tomcat -p 8080:8080 如果正常安装后访问ip+端口出现404情况,进入tomcat目录,把原有webapps目录删除,并把webap

随机推荐