docker构建虚拟镜像+发布springboot项目

一、构建并运行springboot项目

1、将jar包上传linux服务器 /usr/local/laoxu_zh/docker_project/java_project/ 目录,在jar包所在目录创建名为Dockerfile的文件

2、在Dockerfile中添加以下内容

###指定java8环境镜像
FROM java:8

###复制文件到容器
ADD gosh-service-1.0-gosh.jar /gosh-1.0.jar

###声明启动端口号
EXPOSE 80

###配置容器启动后执行的命令
ENTRYPOINT [ "bash", "-c", "java -jar /gosh-1.0.jar --server.port=8080" ]

3、使用docker build命令构建镜像

docker build -t gosh:v1.0 .

 #格式: docker build -t 镜像名称:标签 Dockerfile的相对位置

4、使用docker run命令运行镜像

docker run -d -p 5000:8080 --name gosh gosh:v1.0

-d: 后台运行容器,并返回容器ID

-p: 端口映射,格式为:主机端口:容器端口

--name: 为容器指定一个名称;例如 --name gosh gosh:v1.0 的含义是,运行gosh:v1.0镜像,取别名gosh

--restart=on-failure:3 只有在非0状态退出时才重新启动容器 ,重新启动3次,

                                    如果创建时未指定 --restart 可通过 docker update --restart=on-failure:3 命令设置

5、访问地址 http://192.168.1.221:5000/gosh/test/hello

 

二、构建并运行springboot项目,配置java运行参数

1、将jar包上传linux服务器 /usr/local/laoxu_zh/docker_project/java_project/ 目录,在jar包所在目录创建名为Dockerfile的文件

2、在Dockerfile中添加以下内容,设置java运行参数变量

###指定java8环境镜像
FROM java:8

###复制文件到容器
ADD gosh-service-1.0-gosh.jar /gosh-1.0.jar

###声明启动端口号
EXPOSE 80

###配置容器启动后执行的命令
ENTRYPOINT [ "bash", "-c", "java $JAVA_OPTS -jar /gosh-1.0.jar --server.port=9080" ]

3、使用docker build命令构建镜像

docker build -t gosh:v2.0 .

4、使用docker run命令运行镜像,设置java运行参数

docker run -d -e JAVA_OPTS="-Dfile.encoding=utf-8 -Xms1024m -Xmx1024m -XX:+PrintGCDetails -Xloggc:/var/log/gc.log -XX:+UseG1GC -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/var/log/heap.bin -Duser.timezone=Asia/Shanghai" -p 8080:9080 --name gosh gosh:v2.0

-e: 设置环境变量;例如:JAVA_OPTS设置java运行参数

5、访问地址 http://192.168.1.221:8080/gosh/test/hello

特别注意:

       项目的端口 --server.port=9080 与 运行映射端口docker run -d  -p 8080:9080要保持一致,否则项目访问不到;

       与docker的启动端口 EXPOSE 80 可以不一样。

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值