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

  • Post author:
  • Post category:linux



简介


本篇博文主要介绍在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"]                        


参数说明

参数 说明
FROM openjdk:15 jdk。
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]#


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]# 


查看镜像



docker images

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


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


查看容器



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

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


路漫漫其修远兮,吾将上下而求索




如果您有什么好的想法与方法,欢迎在评论区留言,我们一起讨论~



版权声明:本文为weixin_44917045原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。