Dockerfile部署SpringBoot项目

  1. 构建号SpringBoot项目,保证本地能够正常启动并访问;
  2. 通过Maven package命令打包项目成jar包
  3. 在宿主机建立目录, 并将jar包上传到宿主机中
    4. 在jar包目录下编写Dockerfile文件
vim Dockerfile

# 继承 java:8 这个镜像
FROM java:8
# 作者
MAINTAINER bryan
# 设置当前生成的镜像工作目录
WORKDIR /app
# 环境变量设置
ENV TZ=Asia/Shanghai
# 时区写入系统文件
RUN ln -snf /usr/share/zoneinfo/$TZ  /etc/localtime && echo $TZ > /etc/timezone
# 容器数据卷挂在
VOLUME /tmp
# 将宿主机中的jar包 copy到容器中 /app目录下, 并改名为 docker-server.jar
ADD docker-0.0.1-SNAPSHOT.jar /app/docker-server.jar
# 
RUN bash -c 'touch /docker-server.jar'
# 容器启动后 执行命令 启动SpringBoot项目 java -jar xxx.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app/docker-server.jar"]
# 暴露端口号
EXPOSE 8080

5. 创建镜像

# 别忘记了最后的.
docker build -t docker_server:1.0 .
  1. 镜像创建成功后 ,查看镜像, 启动容器
# 查看镜像是否创建成功
docker images
# 启动SpringBoot项目坐在的容器
docker run -d --name docker_server -p 8080:8080 docker_server:1.0
# 查看容器列表
docker ps -a
# 查看容器内日志, 理论上能看到SpringBoot启动成功
docker logs docker_server
  1. 访问项目 调用接口
curl 192.168.222.132:8080/first

在这里插入图片描述
附:
Dockerfile 参数详解

关键字作用
FROM当前镜像是基于哪个镜像
RUN构建镜像时需要的命令 在docker build 时执行
EXPOSE当前容器需要对外暴露的端口
WORKDIR指定在创建容器后,终端默认进入的工作目录,落脚点
ENV用来构建镜像过程中设置环境变量
ADD将宿主机目录下的文件拷贝进镜像中,并且会自动处理URL和解压tar包
COPY类似于ADD拷贝文件到镜像中,将从构建上下文目录中<原路径>的文件/目录复制到新的一层镜像的<目标路径>位置
VOLUME容器数据卷,用于保存数据和持久化工作
CMD指定一个容器启动命令,Dockerfile中科院有多个CMD命令,但只有最后一个生效,CMD会被run之后的参数替换掉
ENTRYPOINT指定一个容器启动是要执行的命令 ,和CMD一样,但一般和CMD配合使用, ENTRYPOINT不会被docker run后面的命令覆盖, 而且这些命令行参数会被当作参数送给 ENTRYPOINT 指令指定的程序
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值