• Linux系统上使用Docker部署SpringBoot项目


    简介
    本篇博文主要介绍在Docker容器中部署SpringBoot项目,方便自己查看,同时也希望可以帮助正在遇到此问题的码农兄弟们,下面的搭建过程以及解释可能存在问题,欢迎大家评论区留言讨论。

    1.准备Dockerfile文件

    FROM openjdk:15                                                     
    WORKDIR /home                                                               
    EXPOSE 6002                                                                 
    ENV LANG C.UTF-8
    ENV TZ=Asia/Shanghai                                                         
    ENTRYPOINT ["java", "-jar", "backend-1.0-SNAPSHOT.jar"]                        
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    参数说明

    参数说明
    FROM openjdk:15jdk。
    WORKDIR /home镜像中对应的路径,路径不存在,会自动创建此目录 。
    EXPOSE 6002声明运行时容器提供服务端口。
    ENV LANG C.UTF-8设置环境编码,防止中文乱码。
    ENV TZ=Asia/Shanghai设置时区。
    ENTRYPOINT [“java”, “-jar”, “backend-1.0-SNAPSHOT.jar”]指定镜像的默认入口命令。

    2.jar包和Dockerfile上传到服务器目录

    -rw-r--r-- 1 root root 55673285 1021 14:28 backend-1.0-SNAPSHOT.jar
    -rw-r--r-- 1 root root      118 1021 10:11 Dockerfile
    [root@k8smaster01 test-web]# pwd
    /home/images/api/test-web
    [root@k8smaster01 test-web]#
    
    • 1
    • 2
    • 3
    • 4
    • 5

    3.创建镜像
    该命令用于使用Dockerfile创建镜像,镜像名称为vehicle-backend。
    docker build -t vehicle-backend .

    输出结果
    看到如下输出结果代表镜像构建成功。

    [root@k8smaster01 test-web]# docker build -t vehicle-backend .
    Sending build context to Docker daemon  55.68MB
    Step 1/5 : FROM openjdk:15
     ---> bae9931e822b
    Step 2/5 : WORKDIR /home
     ---> Using cache
     ---> 9030b525d006
    Step 3/5 : EXPOSE 6002
     ---> Running in 4ff55228cf88
    Removing intermediate container 4ff55228cf88
     ---> 4166d92074bb
    Step 4/5 : ENV LANG C.UTF-8
     ---> Running in a97e0ce7c531
    Removing intermediate container a97e0ce7c531
     ---> 597926b5b3db
    Step 5/5 : ENTRYPOINT ["java", "-jar", "backend-1.0-SNAPSHOT.jar"]
     ---> Running in 99c42b27881e
    Removing intermediate container 99c42b27881e
     ---> f0d0ea1f76ba
    Successfully built f0d0ea1f76ba
    Successfully tagged vehicle-backend:latest
    [root@k8smaster01 test-web]# 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22

    查看镜像
    docker images

    [root@k8smaster01 test-web]# docker images
    REPOSITORY                                                        TAG                            IMAGE ID       CREATED          SIZE
    vehicle-backend                                                   latest                         f0d0ea1f76ba   22 minutes ago   486MB
    
    • 1
    • 2
    • 3

    4.启动容器
    使用镜像vehicle-backend以后台模式启动一个容器,容器名为vehicle-backend。
    docker run --net=host --name vehicle-backend --restart=always -v /home/images/api/test-web:/home -d vehicle-backend

    参数说明

    参数说明
    –net=host告诉容器使用主机网络堆栈。
    –name为容器指定一个名称。
    –restart=always在重启docker时,自动启动相关容器。
    -v /home/images/api/test-web:/home/home/images/api/test-web这是服务器中的目录映射到vehicle-backend容器中的/home中,大概意思就是两个是一个双向绑定的关系,映射后服务器中的目录内容改变vehicle-backend容器中的也会变。
    -d后台运行容器,并返回容器ID。

    输出结果

    [root@k8smaster01 test-web]# docker run --net=host  --name vehicle-backend --restart=always  -v /home/images/api/test-web:/home -d vehicle-backend
    a7cf9366852773b484919b8c5fd93209b09ebd47661032b37bbc74ce41f46ed0
    
    • 1
    • 2

    查看容器
    docker ps

    [root@k8smaster01 test-web]# docker ps
    CONTAINER ID   IMAGE                                               COMMAND                  CREATED         STATUS         PORTS                  NAMES
    a7cf93668527   vehicle-backend                                     "java -jar backend-1…"   3 minutes ago   Up 3 minutes                          vehicle-backend
    
    • 1
    • 2
    • 3

    到这里在Docker中部署SpringBoot就完成了。

    路漫漫其修远兮,吾将上下而求索
    如果您有什么好的想法与方法,欢迎在评论区留言,我们一起讨论~

  • 相关阅读:
    9.nginx代理
    uniApp开发小程序基础教程(一)
    详谈js之面向对象
    Vue源码解析之mustache模板引擎
    书生·浦语大模型实战营(第二期):书生·浦语大模型趣味Demo
    【论文分享】A White Paper on Neural Network Quantization【4、5】QAT部分和总结讨论
    工控机上安装服务器级虚拟机vmware ESXi6.7
    【oceanbase】centos7/kylinv10部署oceanbase(x86版本)
    第二章 软件测试开发工程师
    什么是自动化测试框架?
  • 原文地址:https://blog.csdn.net/weixin_44917045/article/details/127448202