SpringBoot项目在IDEA制作Docker镜像并部署到阿里服务器运行

2023-11-17

SpringBoot项目如何在IDEA制作Docker镜像并部署到阿里服务器运行

  1. 首先IDEA安装Docker插件
    安装idea插件
    没错就是它,这家伙挺好用的。
    安装后你会看到:
    在这里插入图片描述
    这里就是配置你阿里云服务器地址的
    配置连接远程服务器docker
    服务器开放docker的2375端口还需要改配置文件(当初搞了我好久)
vim /usr/lib/systemd/system/docker.service

服务器开放docker2375端口
服务器防火墙打开2375端口

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

阿里云开放2375端口
阿里云开放端口

  1. 创建SpringBoot项目
    并在SpringBoot项目下、和pom文件同级创建一个Dockerfile文件,无后缀
    SpringBoot项目
  • 配置Dockerfile文件
FROM openjdk:8-jdk-alpine
#基于Java环境
VOLUME /tmp
ADD target/app.jar app.jar
#上面target/app.jar和你打包的jar包名字一致,第二个app.jar和下面的/app.jar名字保持一致,为了方便我都使用一样的,这条一定要有,不然做的容器开启不了(到处是坑)
ENTRYPOINT ["java","-jar","/app.jar"]
  • 配置pom文件添加docker插件
<!-- 配置全局的属性 -->
    <properties>
        <docker.image.prefix>david</docker.image.prefix>
    </properties>
<build>
        <finalName>app</finalName>
        <plugins>
            <!-- 配置SpringBoot的maven插件 -->
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>

            <plugin>
                <groupId>com.spotify</groupId>
                <artifactId>dockerfile-maven-plugin</artifactId>
                <version>1.3.6</version>
                <configuration>
                    <repository>${docker.image.prefix}/${project.artifactId}</repository>
                    <buildArgs>
                        <JAR_FILE>target/${project.build.finalName}.jar</JAR_FILE>
                    </buildArgs>
                </configuration>
            </plugin>
        </plugins>
    </build>    
  • SpringBoot项目总得实现啥吧
    项目结构
    拿来学习用直接一个简单的例子就行了
    UserController
package com.zq.controller;

import com.zq.po.User;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class UserController {

    @GetMapping("/demo")
    public User demo(){
        User user = new User(1,"张三","男",26);
        return user;
    }
}

User

package com.zq.po;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;

@Data
@AllArgsConstructor
@NoArgsConstructor
@ToString
public class User {
    private Integer id;
    private String name;
    private String sex;
    private Integer age;
}

Application(SpringBoot启动类不用多说吧)

package com.zq;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

  • 好了运行自己跑跑(浏览器看看,嗯,没毛病)
    在这里插入图片描述
    现在环境都准备好了,我们主要是要把这个Spring Boot项目做成Docker镜像并部署到服务器里运行,对吧!
  1. 打成jar包
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    查看jar包是否存在
    在这里插入图片描述
  2. 直接跑Dockerfile就将docker镜像做好了并发送到了远程服务器
    在这里插入图片描述
    查看运行执行结果
    在这里插入图片描述
    看看服务器上有没有镜像
docker images

在这里插入图片描述

  • 使用镜像创建容器同时运行容器
docker run -d --name docker-server -p 18080:8080 dockerdemo

在这里插入图片描述
这里可能有人服务启动不起来,这很可能是jar包的问题
可以执行docker命令查看日志

docker logs -f ee9a3626125b2c625c6de434863dfe4c5a8fd305d08727ad1ee2a4ac35c9e8bc

在这里插入图片描述

  • 查看容器是否启动
docker ps -a

在这里插入图片描述

  1. 浏览器访问
    服务器IP:18080
    在这里插入图片描述
    服务器IP:18080/demo
    在这里插入图片描述
    服务器开启18080端口
firewall-cmd --zone=public --add-port 18080/tcp --permanent
firewall-cmd --reload
firewall-cmd --list-all

阿里云控制台那边防火墙也得添加18080/tcp端口规则,我就不再啰嗦了,和之前一样。

好了到此,SpringBoot项目在IDEA上创建镜像部署到阿里云服务器并运行,成功访问已经完成了,欢迎各位在下方收藏+留言反馈。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SpringBoot项目在IDEA制作Docker镜像并部署到阿里服务器运行 的相关文章

随机推荐

  • c语言求fibonacci数列前20,求fibonacci数列的前20个数之和

    使用数组求Fibonacci数列的前20项 要求4项一行输出 斐波那契数列通项公式 斐波那契数列指的是这样一个数列 1 1 2 3 5 8 13 21 这个数列从第三项开始 每一项都等于前两项之和 includeintmain inta 2
  • 容斥原理——经典例题(组合数学)

    一 容斥原理 就是人们为了不重复计算重叠部分 想出的一种不重复计算的方法 先来认识一下这两个符号 与 如图 蓝色的圈就是c1c2 红色的圈围起来的就是c1c2 二 例题 组合数学 1 题目 1 1 题目描述 八是个很有趣的数字啊 八 发 八
  • Centos nginx配置文档

    1 安装nginx yum install nginx 2 Nginx常用命令 查看版本 nginx v 启动 nginx c etc nginx nginx conf 重新加载配置 nginx s reload 停止 nginx s st
  • Bat批处理使用ren批量重命名文件,比如批量去掉文件名称的前4位

    从手机下导入一批照片到电脑 照片开头都是以IMG 开头 甚是烦 使用ren可以批量去掉IMG 开头的几个字符 参考如下 去掉文件名称的最前面4位 去掉文件名称的最后5位 去掉的5位包括 jpg这四个后缀 echo off Deep Lee
  • OCR文字检测主要算法

    转载 https www mayi888 com archives 60604 文字检测是文字识别过程中的一个非常重要的环节 文字检测的主要目标是将图片中的文字区域位置检测出来 以便于进行后面的文字识别 只有找到了文本所在区域 才能对其内容
  • 西门子 PLC S7单边通信

    PLC通信 1 组态 编程 1 打开博途软件 创建新项目 命名为 通信 2 添加新设备 命名为A 这里选择的是CPU1211C 版本V4 2 3 CPU属性设置 启用系统存储器字节和时钟存储器字节 4 以太网地址设置 IP地址设为 192
  • 一文说明白SMC继电器的三种模式:迟滞模式,窗口模式,报警模式

    阅读时间5分钟 有不少同学表示 不理解迟滞模式 窗口模式 报警模式 这里花点儿时间说明一下 这三种模式按照难易程度 1 报警模式 这种方式顾名思义 到压力报警 回到正常范围 报警消除 简单易懂 不过 如果我们需要的压力是0 7MPa 那么我
  • Java坑人面试题系列: 变量声明(中级难度)

    作用域规则与变量覆盖面试题 Java Magazine上面有一个专门坑人的面试题系列 https blogs oracle com javamagazine quiz 2 这些问题的设计宗旨 主要是测试面试者对Java语言的了解程度 而不是
  • 华为OD -单词接龙(Python)

    单词接龙 题目描述 单词接龙的规则是 可用于接龙的单词 首字母必须要与前一个单词的尾字母相同 当存在多个首字母相同的单词时 取长度最长的单词 如果长度也相等 则取字典序最小的单词 已经参与接龙的单词不能重复使用 现给定一组全部由小写字母组成
  • vue+element-ui el-descriptions 详情渲染组件二次封装(Vue项目)

    目录 1 需求 2 想要的效果就是由图一变成图二 编辑 3 组件集成了以下功能 4 参数配置 示例代码 参数说明 5 组件 6 页面使用 1 需求 一般后台管理系统 通常页面都有增删改查 而查不外乎就是渲染新增 修改的数据 由输入框变成输入
  • Oracle 数据库查看锁表的语句和解锁的方法

    一 查看锁表语句 SELECT sess sid sess serial lo oracle username 登陆账号名称 lo os user name 登录电脑名称 ao object name 被锁表名 lo locked mode
  • 【Vulnhub】之symfonos1

    一 部署方法 在官网上下载靶机ova环境 https download vulnhub com symfonos symfonos1 7z 使用VMware搭建靶机环境 攻击机使用VMware上搭建的kali 靶机和攻击机之间使用NAT模式
  • oracle impdp无法打开日志文件,oracle expdp导入时 提示“ORA-39002: 操作无效 ORA-39070: 无法打开日志文件 ”...

    oracle impdp导入时 提示 OpenCurlyDoubleQuote ORA 39002 colon 操作无效 ORA 39070 colon 无法打开日志文件 第一步 首先使用DBA权限的用户创建directory 我使用sys
  • ‘git‘不是内部或外部命令,也不是可运行的程序或批处理文件。

    一 出现问题 git 不是内部或外部命令 也不是可运行的程序或批处理文件 出现这个问题主要是git的环境变量没有设置 二 解决问题 首先右键我的电脑点击属性 在点击高级系统设置 点击环境变量 在下面这栏点击path设置环境变量 添加这三个环
  • 【人工智能】感知器算法的设计实现(QDU)

    人工智能 Astar算法求解8数码问题 QDU 人工智能 利用 搜索的博弈树算法编写一字棋游戏 QDU 人工智能 Fisher 线性分类器的设计与实现 QDU 人工智能 感知器算法的设计实现 QDU 人工智能 SVM 分类器的设计与应用 Q
  • Hive的数据类型

    Hive支持的数据类型如下 原生类型 TINYINT SMALLINT INT BIGINT BOOLEAN FLOAT DOUBLE STRING BINARY Hive 0 8 0以上才可用 TIMESTAMP Hive 0 8 0以上
  • 04-SpringBoot集成Nebula Graph

    SpringBoot集成Nebula 建议模块 在这里给大家推荐一种方式 每引入一种新的技术 建议新建一个模块 来适配这种技术 对外提供接口 在调用的地方应用就可以 不用搞的到处都是 防止如果后续替换这种技术 还要到处修改 这样的话 只需要
  • 工业大数据漫谈14:煤矿与非煤矿矿山如何应用大数据

    在工业领域 煤矿与非煤矿山属于相对特殊的行业 不是我们传统意义上的工厂模式 而是一种资源开采模式 矿山行业因为其生产的特殊性 因此在工业大数据的应用上 也呈现出了与制造型工业完全不同的特点 与制造型工业相比较 矿山行业最大的区别在于产品质量
  • JTest简单试用

    安装JTest 拷贝破解文件lic client jar到 Parasoft Test 9 4 plugins com parasoft xtest libs 9 4 0 20120412 Parasoft 创建附带案例 例如JPetSto
  • SpringBoot项目在IDEA制作Docker镜像并部署到阿里服务器运行

    SpringBoot项目如何在IDEA制作Docker镜像并部署到阿里服务器运行 首先IDEA安装Docker插件 没错就是它 这家伙挺好用的 安装后你会看到 这里就是配置你阿里云服务器地址的 服务器开放docker的2375端口还需要改配