当前位置: 首页 > news >正文

Docker打包镜像

Docker打包镜像

前置工作

 1.虚拟机中配置好docker环境,并导入nginx,mysql,jdk的镜像

2.下载docker for windows

用idea打包镜像和创建容器需要这个东西支持

下载安装包后执行,无脑回车即可

3.idea中配置docker连接

 

 

完成配置后,点开docker连接,可以看到如下内容

简单介绍一下,可以通过镜像创建容器。

镜像相当于一个配方,容器相当于菜肴,通过一个秘方可以创建无数个菜肴,同理:通过指定镜像可以创建无数个容器。

每个容器相当于一个小型linux机器,它只包含最基本的功能(内核级功能),用一句话形容就是:麻雀虽小五脏俱全。

4.将我们的工程打成一个jar包

1.首先,修改pom文件中的skip标签的值为false

否则他会跳过打包我们的启动类,在执行java -jar时会报如下错误 

2.执行命令  mvn -clean      mvn -package

也可以在界面执行

打包好会生成一个target文件夹,我们的jar包在这个文件夹里面 

两种打包镜像的方式

注意,镜像的名字必须全小写

手动打包(不推荐,应急情况下使用)

1.写Dockerfile文件
# 基于jdk17以上 的镜像创建
FROM openjdk:17-jdk-alpine# 将编译后的文件复制到镜像中,用于运行
# 参数1 jar包所在位置(目录+文件名)
# 参数2 给这个jar起别名  用别名是为了移植方便
ADD target/TestDockerDB01-0.0.1-SNAPSHOT.jar /app.jar# 设置启动命令
ENTRYPOINT ["java","-jar","/app.jar"]
2.将jar包和Dockerfile文件通过ftp工具上传到虚拟机

3. 通过命令打包镜像

命令格式

docker build -t   镜像名:版本号   Dockerfile所在的地址

执行命令报错,这是因为当我们把jar包移到虚拟机后,它所在的位置就不是target/TestDockerDB01-0.0.1-SNAPSHOT.jar了 

这时候我们通过vi Dockerfile去修改文件

再一次检查一下jar包和Dockerfile文件的位置,重新执行命令

创建镜像成功

idea中也能看到我们刚刚创建的镜像 

通过idea打包

回到Dockerfile文件,进行配置

 把Dockerfile跑起来,这里我们选择第一个,创建镜像和容器

创建成功后会自动启动容器

相关文章:

  • JavaScript高级——显式原型和隐式原型
  • 自学半年LabVIEW,能搭建出来一个系统吗
  • Datasheet SHT20芯片的数据手册
  • 在深度学习计算机视觉的语义分割中,Boundary和Edge的区别是?
  • 【数学建模】典型相关分析
  • C++ | Leetcode C++题解之第392题判断子序列
  • 2023Idea版本无法下载通义灵码插件以及无法登录问题
  • C++详解string(全面解析)
  • 【虚拟化】KVM-virsh离线工具进行客户机虚拟机磁盘访问
  • 2024年CCPC网络赛 D题个人理解
  • AI绘画笔记
  • Eprime学习【E-basic语言、心理学实验程序设计】
  • 视频回放 | DolphinDB 2024 年度峰会主会场演讲精彩回顾
  • matplotlib画动态图
  • 【Unity踩坑】创建新项目后提示编译错误要进入安全模式
  • 【Under-the-hood-ReactJS-Part0】React源码解读
  • 【翻译】babel对TC39装饰器草案的实现
  • 0x05 Python数据分析,Anaconda八斩刀
  • 345-反转字符串中的元音字母
  • Akka系列(七):Actor持久化之Akka persistence
  • ECMAScript6(0):ES6简明参考手册
  • emacs初体验
  • iOS仿今日头条、壁纸应用、筛选分类、三方微博、颜色填充等源码
  • java中的hashCode
  • php的插入排序,通过双层for循环
  • Puppeteer:浏览器控制器
  • python3 使用 asyncio 代替线程
  • unity如何实现一个固定宽度的orthagraphic相机
  • Vue.js-Day01
  • Vue--数据传输
  • windows下如何用phpstorm同步测试服务器
  • WinRAR存在严重的安全漏洞影响5亿用户
  • 搭建gitbook 和 访问权限认证
  • 分布式熔断降级平台aegis
  • 时间复杂度与空间复杂度分析
  • 优秀架构师必须掌握的架构思维
  • 继 XDL 之后,阿里妈妈开源大规模分布式图表征学习框架 Euler ...
  • 扩展资源服务器解决oauth2 性能瓶颈
  • 数据可视化之下发图实践
  • #我与Java虚拟机的故事#连载06:收获颇多的经典之作
  • #周末课堂# 【Linux + JVM + Mysql高级性能优化班】(火热报名中~~~)
  • $.ajax,axios,fetch三种ajax请求的区别
  • ${factoryList }后面有空格不影响
  • (02)Cartographer源码无死角解析-(03) 新数据运行与地图保存、加载地图启动仅定位模式
  • (2024,Flag-DiT,文本引导的多模态生成,SR,统一的标记化,RoPE、RMSNorm 和流匹配)Lumina-T2X
  • (4)(4.6) Triducer
  • (4)事件处理——(2)在页面加载的时候执行任务(Performing tasks on page load)...
  • (第61天)多租户架构(CDB/PDB)
  • (黑马C++)L06 重载与继承
  • (机器学习-深度学习快速入门)第三章机器学习-第二节:机器学习模型之线性回归
  • (心得)获取一个数二进制序列中所有的偶数位和奇数位, 分别输出二进制序列。
  • (一)硬件制作--从零开始自制linux掌上电脑(F1C200S) <嵌入式项目>
  • (原創) 如何安裝Linux版本的Quartus II? (SOC) (Quartus II) (Linux) (RedHat) (VirtualBox)
  • (转)用.Net的File控件上传文件的解决方案
  • (自适应手机端)行业协会机构网站模板