使用Dockerfile部署SpringBoot项目
准备jar包和Dockerfile文件
首先我们将项目的jar包上传到Linux服务器某个目录下,例如我们将文件上传到/usr/local/dockerapp
目录下。
创建Dockerfile文件 vi Dockerfile
FROM java:8
VOLUME /tmp
ADD sso-server.jar /sso-server.jar
EXPOSE 8080
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/sso-server.jar"]
命令 | 作用 |
---|---|
FROM java:8 | 依赖的基础镜像名称 |
VOLUME /tmp | 创建/tmp目录并持久化到Docker数据文件夹,因为Spring Boot使用的内嵌Tomcat容器默认使用/tmp作为工作目录 |
ADD sso-server.jar /sso-server.jar | 将宿主机的文件复制到容器内,如果是一个压缩文件,将会在复制后自动解压 |
EXPOSE 80 | 并不是真正的发布端口,这个只是容器部署人员与建立image的人员之间的交流,即建立image的人员告诉容器布署人员容器应该映射哪个端口给外界 |
ENTRYPOINT | 容器启动时运行的命令,相当于我们在命令行中输入java -jar xxxx.jar,为了缩短 Tomcat 的启动时间,添加java.security.egd的系统属性指向/dev/urandom作为 ENTRYPOINT |
构建镜像
把jar包和Dockerfile放在同一个目录下执行下面命令
docker build -t sso-server .
运行容器
docker run -d --name 容器名称 -p 8080:8080 镜像名称
其中
-d 表示后台运行容器,这也就自然地解决的Spring Boot不支持后台运行应用程序的问题。
-p 8080:8080表示将容器内部的8080端口映射到宿主机器的8080端口,这样就可以通过宿主机器直接访问应用。
–name 给容器取一个容易记住的名字方便日后管理。
查看运行日志
docker logs -f --tail=100 容器名称
tail后面是常看日志的条数
标签: Docker SpringBoot