源码
git clone https://github.com/panqingcui/spring-boot-docker-example.git
依赖
maven 3.*
- jdk 1.8
- docker 19.03.2
第一种方式(demo1)
- 编写Dokcerfile 文件
# 基础依赖 jdk 8FROM openjdk:8-jdk-alpine#maintainerMAINTAINER panqingcui@163.com#指令是声明运行时容器提供服务端口, 8080EXPOSE 8080#复制ADD ./target/demo-0.0.1-SNAPSHOT.jar /app/demo-0.0.1-SNAPSHOT.jar#执行命令CMD java -jar /app/demo-0.0.1-SNAPSHOT.jar
- 打包
mvn clean package
- 生成image
docker build -t docker-demo/latest
- 执行效果
![a272440fa498abda9a1c4775a05e5ac7.png](https://i-blog.csdnimg.cn/blog_migrate/771c41985762ac2ef03531d653fa2c39.jpeg)
- 查看 生成的image
docker images
![4083e3f5d8874aea6a21c5507b0d6e5f.png](https://i-blog.csdnimg.cn/blog_migrate/c7e8a699c7ce10103cdd11ae0fe8a7a2.jpeg)
- 运行
docker run -d -p 8081:8080 docker-demo/latest
-d 后台运行
-p 端口映射 docker 内部8080端口,8081:宿主机端口。
- 结果
curl http://localhost:8081 this is docker spring bootd
第二种方式(demo2)
- 编写Dokcerfile 文件
# 基础依赖 jdk 8FROM openjdk:8-jdk-alpine#maintainerMAINTAINER panqingcui@163.com#指令是声明运行时容器提供服务端口, 8080EXPOSE 8080#义匿名卷VOLUME /tmp#命令ARG DEPENDENCY=target/dependencyCOPY ${DEPENDENCY}/BOOT-INF/lib /app/libCOPY ${DEPENDENCY}/META-INF /app/META-INFCOPY ${DEPENDENCY}/BOOT-INF/classes /appENTRYPOINT ["java