简介
本篇博文主要介绍在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 10月 21 14:28 backend-1.0-SNAPSHOT.jar
-rw-r--r-- 1 root root 118 10月 21 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就完成了。
路漫漫其修远兮,吾将上下而求索
如果您有什么好的想法与方法,欢迎在评论区留言,我们一起讨论~