springboot jar 打包成docker 镜像并运行

一.安装docker 并运行

详情见 CentOS-7 下在线安装docker 与卸载_cyw8998的专栏-CSDN博客

二.建springboot web工程端口定为10188,并打包成jar

三.编写Dockerfile

# Docker image for springboot file run
# VERSION 0.0.1
# Author: eangulee
# 基础镜像使用java
# FROM openjdk:8u292-jre-buster
FROM java:8
# 作者
MAINTAINER eangulee <jim123123@163.com>
# 时区变量值为亚洲上海
ENV TZ=Asia/Shanghai
# 设置时区,如果不设置时区,就是默认时区;ln设置方法就是在目标目录/etc/localtime建立快捷方式文件
RUN ln -sf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
# VOLUME 指定了临时文件目录为/tmp。
# 其效果是在主机 /var/lib/docker 目录下创建了一个临时文件,并链接到容器的/tmp
VOLUME /tmp 
# 将jar包添加到容器中并更名为app.jar
ADD dockertest.jar app.jar
# 运行jar包
RUN bash -c 'touch /app.jar'
# "参数-Djava.security.egd=file:/dev/./urandom" 是加快tomcat启动的
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
# 或者 CMD java -jar app.jar
# 或者 CMD ["java","-jar","/app.jar"]
四.docker进行打包

spring boot的web jar名为 dockertest.jar

docker打包执行命令:

docker built -t testimg:v1   (联网状态,会从指定地址搜索FROM基础镜像)

或者 docker built --network=host -t test333  . (离线打包,会从本地宿主机搜索基础镜像)

查看是否生成成功(镜像名称test333)

docker images 

五.运行镜像:

 docker run -d -p  20188:10188  test333

 六.linux本地访问: curl http://localhost:20188/docker/test

或者浏览器访问 http://localhost:20188/docker/test

正确结果如下

另外碰到问题:我用移动云服务器部署后,宿主机访问不到该映射端口。

查看运行中的镜像: docker ps -a 

进入镜像内: docker exec -it 镜像ID  bin/bash 后,镜像可以自己访问自己,说明该工程服务没有问题

解决办法:更改工程properties.yaml文件,增加

server:
  port: 10188
  address: 0.0.0.0

后,重新打包并制作镜像运行后,宿主机可以访问。云服务器管理端开通对应端口,外网就也能访问该服务了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值