Docker部署springboot项目准备如下:
- 可以运行的jar:springboot_demo-0.0.1-SNAPSHOT.jar
访问地址http://localhost:8080/rest/hello - 已安装docker
- 已安装jdk1.8环境
- Dockerfile文件
前三个已准备ok,下面进行第四个,创建一个Dockerfile文件 - 内容如下:
# Docker image for springboot file run
FROM java:8
# VOLUME 指定了临时文件目录为/tmp。
# 其效果是在主机 /var/lib/docker 目录下创建了一个临时文件,并链接到容器的/tmp
VOLUME /tmp
# 将jar包添加到容器中并更名为app.jar
ADD springboot_demo-0.0.1-SNAPSHOT.jar /springboot.jar
ENTRYPOINT [“java”,”-Djava.security.egd=file:/dev/./urandom”,”-jar”,”/ springboot.jar”]
如果是第一次打包,它会自动下载java 8的镜像作为基础镜像,以后再制作镜像的时候就不会再下载了。
-
下面是进行部署文件及制作镜像
将Dockerfile和jar放在一个文件夹中/docker,使用如下命令生产镜像,注意最后的.
docker build –t springboot .制作镜像成功如图
-
查看docker镜像
docker images -
运行docker容器
docker run -d –p 9000:8080 springboot
1.-d 后台运行
2.-p 9000:8080 将服务器上的9000端口映射到docker容器的8080端口(项目中端口配置为8080)
到这里就配置完成了,在浏览器使用:服务器ip:9000就能访问docker容器内部署的springboot项目了小结:
删除镜像:docker rmi -f cef687211c0b
关闭防火墙:systemctl stop firewalld
在虚拟机中访问本身服务
在本地机器中访问虚拟机中部署的springboot服务
注意:期间遇到制作镜像一直无法下载成功的问题,尝试了好久才解决(准备一个稳定的好的网络环境)。
另一个就是启动镜像后访问一直失败的问题,主要检查dockerfile文件内容是否正确,需要耐心。
本来可以在centos7环境中直接用java -jar ***.jar启动服务,非常简单快捷,但通过docker容器部署未发现其优势,后面需要再了解。