Spring Boot项目打包成Docker镜像运行在Docker容器中
1、新建一个spring boot的web项目,过程略。然后新写一个controller
@RestController
public class TestController {
@RequestMapping("test")
public String test(){
return "部署docker";
}
}
2、把端口改成了8088,然后 打包此项目
3、在虚拟上新建文件夹,将jar包放进去,
然后vim新建Dockerfile文件,内容如下
FROM java:latest
VOLUME /tmp
ADD docker-0.0.1-SNAPSHOT.jar app.jar
RUN bash -c 'touch /app.jar'
EXPOSE 8088
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
FROM :表示使用哪个基础镜像去构建新的镜像。
ADD :表示叠加什么镜像到上面的基础镜像中。jar包
EXPOSE:表示对外开放端口,我使用的是8088.
RUN bash -c 'touch /app.jar' :它的作用等同于拷贝文件到容器. 使用 shell编程,执行一个 touch 命令,更新文件的访问和修改时间 -c 如果文件不存在,则不要进行创建。具体参考liunx 的 touch 命令和shell编程。
ENTRYPOINT :入口点, 表示容器运行后默认执行的命令。
4、最后制作镜像,注意最后有个 “.”
docker build -t springboot-docker .
5、查看镜像
docker images
6、此时我们打包的镜像已经完成,接下来就是运行他!
docker run -d -p 8088:8088 springboot-docker
-d参数是让容器后台运行
-p 是做端口映射,宿主机端口:容器端口