SpringBoot项目部署到Docker
编辑
524
2020-07-13
本文记录如何将SpringBoot项目部署到Docker。
一、前提
1、默认读者了解docker基本命令
二、部署过程
1、将项目jar包,jdk准备好,上传到服务器,我用的Xftp上传。
2、然后新建一个文件就叫“Dockerfile”,因为后续构建Docker镜像时不指定路径和名称它默认就找叫这个名字的,当然一般大家都命名成这样的。
![1.png]/upload/2021/06/1-e9d712798cbc491aa3b684adfffb0f66.png)
3、编写Dockerfile
(本人Docker初学者,dockerfile写的不好,还请各位大哥留情哇)
# 继承镜像
FROM centos
# 作者
MAINTAINER heycm<heycm@qq.com>
# 构建镜像时顺带安装vim,这个看需求,可以不要
RUN yum -y install vim
# 定义一个环境变量
ENV MY_PATH /usr/local
# 设置进入容器落脚点
WORKDIR $MY_PATH
# 将jdk拷贝到/usr/local目录下,并且解压
ADD jdk-8u251-linux-x64.tar.gz $MY_PATH/
# 将项目jar包拷贝到/usr/local目录下
COPY crim.jar $MY_PATH/
# 配置Java环境变量
ENV JAVA_HOME $MY_PATH/jdk1.8.0_251
ENV PATH $JAVA_HOME/bin:$PATH
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
# 暴露端口(项目用的端口)
EXPOSE 8080
# 启动容器时跑项目
ENTRYPOINT ["nohup", "java", "-jar", "crim.jar", "&"]
4、构建镜像
就在当前目录下构建,注意后边有一个点,表示当前目录
# -t:表示版本,tag,给镜像起个名称和版本号,如boot-crim-api:1.0
# 不写版本默认就是latest
docker build -t boot-crim-api .
-t:表示版本,tag,给镜像起个名称和版本号,如boot-crim-api:1.0,不写版本默认就是latest
执行,等待构建
5、启动容器
构建完成,可以查看镜像了
启动容器
# -d:表示后台运行
# -p:端口映射,宿主机Port:容器Port
# --name:指定容器名称,不指定docker自己给一个随机名
docker run -d -p 8888:8080 --name crim-api boot-crim-api
到此,SpringBoot项目部署到Docker就完成了。
拓展:
如果有数据卷需求的,也可以使用 -v 指令指定数据卷:
docker run -d -p 8888:8080 -v 宿主机文件夹绝对路径:容器文件夹绝对路径 --name crim-api boot-crim-api
路径一定要是绝对路径,不建议直接映射文件,会出各种毛病(映射不上、不能同步等等)。
数据卷可以用来备份数据、日志、各种文件、共享数据等等,功能强大,是docker的重要部分之一;还可以做一个父容器来当做数据卷容器,其他容器继承父容器,这样就可以做到多个容器之间的数据共享。
6、其他补充
项目中连接数据库之类的,如果数据库同在一个服务器,跟部署在宿主机一样用的 内网IP:端口 连接。
- 0
- 0
-
分享