准备springboot jar项目
将下面内容写入Dockerfile文件
FROM java:8
VOLUME /tmp
ADD testspringboot-0.0.1-SNAPSHOT.jar testspringboot.jar
EXPOSE 8080
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/testspringboot.jar"]
FROM:表示基础镜像,即运行环境
VOLUME: /tmp创建/tmp目录并持久化到Docker数据文件夹,因为Spring Boot使用的内嵌Tomcat容器默认使
用/tmp作为工作目录
ADD:拷贝文件并且重命名(ADD testspringboot-0.0.1-SNAPSHOT.jar testspringboot.jar 将应用jar包复制到/testspringboot.jar)
EXPOSE:并不是真正的发布端口,这个只是容器部署人员与建立image的人员之间的交流,即建立image的人员
告诉容器布署人员容器应该映射哪个端口给外界
ENTRYPOINT:容器启动时运行的命令,相当于我们在命令行中输入java -jar xxxx.jar,为了缩短 Tomcat 的启动
时间,添加java.security.egd的系统属性指向/dev/urandom作为 ENTRYPOINT
构建容器
docker build -t testspringboot .
运行容器
docker run --rm -d --name 容器名称 -p 8080:8080 镜像名称
其中-d表示后台运行容器,这也就自然地解决的Spring Boot不支持后台运行应用程序的问题。
-p 8080:8080表示将容器内部的8080端口映射到宿主机器的8080端口,这样就可以通过宿主机器直接访问应用。
--name 给容器取一个容易记住的名字方便日后管理。
查看运行日志
docker logs -f --tail=100 容器名称