Docker容器部署springboot项目

1.实现原理

先利用jar包生成一个镜像文件,然后docker启动即可

2.具体步骤

2.1 准备工作:

linux服务器上已安装docker
docker -v
linux服务器上已安装jdk
java -version
linux服务器开放要执行的项目端口

2.1 实操

先把项目打包成jar包,上传到linux服务器(可利用ftp)
在linux服务器上该jar包所在目录,新建文件,名为Dockerfile,内容如下

FROM java:8
VOLUME /temp
ADD swapping.jar swapping.jar
RUN bash -c 'touch /swapping.jar'
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","-Xmx1024m","-Xms1024m","/swapping.jar"]

文件解释

FROM java:8

指定要构建的spring boot服务镜像的基础源镜像是java,版本是8;如果本地没有java:8的镜像,就会从dockerHub下载。一般首次下载,以后就不会下载了。
VOLUME /temp

VOLUME 指向了容器内的/tmp的目录,由于 Spring Boot 使用内置的Tomcat容器,Tomcat 默认使用/tmp作为工作目录。这个命令的效果是:在宿主机的/var/lib/docker目录下创建一个临时文件并把它链接到容器中的/tmp目录

VOLUME 命令只能指定挂载点,也就是说在此处,只能指定容器内的目录,不能指定宿主机上对应的目录,也就是说是宿主机上自动生成的目录 去挂载了  容器内的指定的/tmp目录!!!
如果想要指定宿主机的目录去进行挂载,只能通过run命令中的 -v参数进行 宿主机的指定目录 挂载  容器内的指定目录
ADD swapping.jar swapping.jar

其实就是 ADD 【rz上传上来的文件】 【要被拷贝到即将要构建的docker容器中的文件】
RUN bash -c 'touch /swapping.jar'

实际执行复制操作的命令
复制代码
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","-Xmx1024m","-Xms1024m","/swapping.jar"]

ENTRYPOINT 配置容器启动后执行的命令,并且不可被 docker run 提供的参数覆盖。

-Djava.security.egd=file:/dev/./urandom
添加java.security.egd的系统属性指向/dev/urandom,JVM上的随机数与熵池策略

在jar包所在目录执行命令创建docker镜像,注意有.
docker build -t swapping .
运行该镜像
docker run --name swapping -itd --net=host swapping
查看启动日志
docker logs -f swapping
成功,访问服务测试

重启服务
docker restart swapping
停止服务
docker stop swapping
移除容器
docker rm -f swapping
列出所有镜像
docker images
删除镜像
docker rmi 9d3ee8a877d3

3.完结

撒[发发]

上一篇:牛客1 G_Game of Swapping Numbers(思维好题)


下一篇:First Bad Version leetcode java