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

2 篇文章 0 订阅
1 篇文章 0 订阅

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上创建镜像部署到阿里云服务器并运行,成功访问已经完成了,欢迎各位在下方收藏+留言反馈。

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值