当前位置:   article > 正文

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

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

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

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

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

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

阿里云开放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"]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 配置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>    
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 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;
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

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;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

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);
    }
}

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

在这里插入图片描述

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

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

docker logs -f ee9a3626125b2c625c6de434863dfe4c5a8fd305d08727ad1ee2a4ac35c9e8bc
  • 1

在这里插入图片描述

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

在这里插入图片描述

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

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

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/880799
推荐阅读
相关标签
  

闽ICP备14008679号