参考文档:Install Docker for Macjava
假设名为 hellodocker
进入项目根路径,新建 Dockerfile,内容以下:浏览器
FROM maven:3.3.3 ADD pom.xml /tmp/build/ RUN cd /tmp/build && mvn -q dependency:resolve ADD src /tmp/build/src #构建应用 RUN cd /tmp/build && mvn -q -DskipTests=true package \ #拷贝编译结果到指定目录 && mv target/*.jar /app.jar \ #清理编译痕迹 && cd / && rm -rf /tmp/build VOLUME /tmp EXPOSE 8080 ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
因为项目使用 Maven 构建,故本次基础镜像选用 maven:3.3.3 官方镜像。
官方维护的 Maven 镜像依赖于 Java 镜像构建,因此咱们不须要使用 Java 镜像。
由于 Spring Boot 框架打包的应用是一个包含依赖的 jar 文件,内嵌了 Tomcat 和 Jetty 支持,因此咱们只须要使用包含 Java 的 Maven 镜像便可,不须要 Tomcat 镜像。app
为了减小镜像大小,在执行 Maven 构建以后,清理了构建痕迹。框架
在 Dockerfile 文件的最后,使用 ENTRYPOINT 指令执行启动 Java 应用的操做。dom
Dockerfile 具体语法请参考:Dockerfilecurl
在一切准备好以后,在应用根目录执行以下命令,构建 Docker 镜像:maven
docker build -t hello .
构建成功后,从镜像启动容器:ui
docker run -d -p 8080:8080 hello
打开浏览器,或者使用 curl 访问地址 http://localhost:8080url