springboot项目在docker中运行
前端时间需要把项目打包到docker中运行,于是就让组员去探索,最后整个过程是这样的。
首先我们做java开发,一般都是使用springboot开发,开发完成,我们需要把springboot项目打包成jar包。此时我们jar包就能在服务器上使用 java -jar xxxx.jar 运行项目了,但是在docker中,需要把jar包在打包成镜像。
我的开发环境是windows,然后是双系统,我在任意一个文件夹,shift+鼠标右键就能调出linux界面
首先我们需要编写一个Dockerfile文件 ,把它和springboot打包好的jar包,放到同一个文件夹下面。如果你用linux系统,就把jar包和Dockerfile文件上传到linux系统下,只要保证是在同一个目录下面即可。
Dockerfile内容如下:
FROM registry.otrs365.cn/servicecool/jdk:8u241 #基础镜像,当前新镜像是基于那个镜像, 像这里就是基于java 8环境 ADD diantong-IP-4.0.0-SNAPSHOT.jar diantong-IP.jar #diantong-IP-4.0.0SNAPSHOT.jar为你SpringBoot打包最终的成包名称,别名为diantong-IP.jar EXPOSE 9081 # 这个是你项目的要暴露的端口,你项目的端口是什么这里就写什么 ENTRYPOINT ["java","-jar","/diantong-IP.jar"] #这句话相当于 java -jar diantongIP.jar
linux系统下,FROM 后面指向你docker中安装的jdk的镜像
注意,Dockerfile是没有后缀的。
接下来就是构建镜像了
在存放Dockerfile和项目jar的目录下,执行以下的命令(注意后面有一个 . 不能少)
docker build -t diantong-ip .
这里有一个坑,就是你jar包的名称不能有大写的,有大写你在运行上面命令时也要把大写改成小写
等待运行完成,执行成功后docker中就多了个镜像了。执行下面命令查看你的镜像:
docker images
启动容器
-p这个属性我这边详细说一下:9081:9081的意思是将我宿主机的9081端口映射到容器端口9081,我在前
面已经配置过这个端口了
docker run -d -p 9081:9081 diantong-ip
启动成功,使用
docker ps
就能看到容器了,至此,一个springboot应用就成功放到docker中运行了。
如果需要把这个应用给你的朋友,那只需要
docker save -o diantongip.tar diantong-ip:latest
就会得到一格diantongip.tar压缩包,把这个压缩包发给你的朋友
使用以下命令,就能导进他的docker里面了
注:此文章写于2021/08/11 若时间过长,文章内容步骤稍有偏差。
原文地址:https://www.cnblogs.com/LoveBB/p/15129580.html
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Java开发编程规范:5.集合处理
- codeforce 272E Dima and Horses (假DFS)
- 网速慢?NO可能是路由器的原因?
- codeforce 272B Dima and Sequence
- 微软自家的.Net下的JavaScript引擎--- ClearScript
- HDU 1159.Common Subsequence【动态规划DP】
- Codeforce 270D Greenhouse Effect
- 地表最简单安装MySQL及配置的方法,没有之一
- HDOJ 1176 免费馅饼 -- 动态规划
- flex-grow计算公式
- Cypress系列(67)- 环境变量设置指南
- codeforce 270C Magical Boxes
- Java开发编程规范: 4.OOP 规约
- Codeforces 1323 div2题解ABC
- order排序