怎么用docker将项目打包成镜像并导出给别人适用 (dockerfile)

news2024/12/25 9:27:26

前提

你得安装docker,没有安装的可以看看这篇文章

编写dockerfile

在这里插入图片描述
这个位置最好和我一样,不然后面打包成镜像可能出问题(找不到jar包)

FROM openjdk:8-jdk-slim
MAINTAINER JacksonNing
COPY  /target/iec104-1.0.0-SNAPSHOT.jar  /iec104.jar
EXPOSE 8082
ENTRYPOINT ["java","-jar","/iec104.jar"]

application.yml

server:
  port: 8082

idea将项目打包成jar

在这里插入图片描述
先clean再package

注意程序只能有一个main方法,不然打包会报错

以下代表打包成功
在这里插入图片描述

使用docker打包成镜像

1、在dockerfile的目录下运行终端
在这里插入图片描述

docker build -t iec104:v1.0 .

在这里插入图片描述
2、查看是否有镜像

docker images

在这里插入图片描述
3、运行容器

docker run -itd -p 8081:8081 --name iec104 iec104:v1.0

在这里插入图片描述
或者推荐这个,因为我的这个项目是想要容器能够监听到宿主机的端口,我使用以下命令即可

be268578aa6c 是镜像id

docker run --net=host -d be268578aa6c 

导出镜像

1、将正在运行的docker容器打包成image镜像

docker commit 4f2a09831d74 iec104:v1.0 

docker commit 0a3b26324050[容器ID] mysql:1.0 [名称:版本号]

2、把刚刚打包好的镜像保存成 tar 文件

docker save iec104:v1.0 -o /data/home/nsx/Documents/iec104.tar

docker save 镜像名:版本号 -o /路径/保存的包名.tar

3、将打包好的镜像拷贝到新机器上面,执行load命令解压

docker load < iec104.tar  #执行命令

常用命令

docker tag 95bfbad9e10c iec104:v1.0  #打标签

docker exec -it 669fd6e56323 bash   #进入容器

docker logs 52e57ee5e7c6  #打印容器的日志

docker stop 52e57ee5e7c6 #暂停容器

docker rm -f 52e57ee5e7c6  #删除容器

docker build -t iec104:v1.0 . #打包镜像

docker run -itd -p 8082:8082 --name iec104 iec104:v1.0  #启动镜像

docker commit 4f2a09831d74 iec104:v1.0  #将正在运行的docker容器打包成image镜像


docker save iec104:v1.0 -o /data/home/nsx/Documents/iec104.tar #把打包好的镜像保存成 tar 文件

docker run --net=host -d be268578aa6c #使用host网络模式启动,解决docker容器内无法访问宿主机的资源的问题

参考:
https://blog.csdn.net/qq_28880087/article/details/114575736?spm=1001.2014.3001.5506

https://blog.csdn.net/springhub/article/details/127482319?spm=1001.2014.3001.5506

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/21064.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

这次把怎么做好一个PPT讲清-演讲篇

《商务演讲与汇报》 一、目标&#xff1a;演讲必须有清晰的目标 演讲&#xff1a;影响他人发生积极的**“改变”** 注意&#xff0c;目标就要设定的影响听众在听完你的演讲后发生积极的改变&#xff1b; 例&#xff1a;5月初向领导做月度工作汇报→→让领导在5月第一周例会…

QGradient(渐变填充)

QGradient&#xff08;渐变填充&#xff09; QGradient和QBrush一起使用来指定渐变填充。 Qt支持的填充&#xff1a; 线性渐变&#xff08;linear gradient&#xff09;,在起点和终点之间插值颜色辐射渐变&#xff08;radial gradient&#xff09;,在焦点和围绕它的圆的端点之…

2019上半年-2019下半年软件设计师上午题错题总结

2019上半年 30.以下关于极限编程&#xff08;XP&#xff09;的最佳实践的叙述中&#xff0c;不正确的是&#xff08;C &#xff09;。 A.只处理当前的需求&#xff0c;使设计保持简单 B.编写完程序之后编写测试代码 C.可以按日甚至按小时为客户提供可运行的版本 D.系统最…

【附源码】Python计算机毕业设计水库洪水预报调度系统

项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等等。 环境需要 1.运行环境&#xff1a;最好是python3.7.7&#xff0c;我…

linux进阶-构建deb软件安装包

Linux软件包的组成&#xff1a;源码包和二进制包。 文件类型保存目录普通程序/usr/binroot权限程序/usr/sbin程序配置文件/etc日志文件/var/log文档文件/usr/share/doc 源码包优点&#xff1a;开源免费、自由裁剪、修改源代码。 源码包缺点&#xff1a;安装步骤繁琐、编译时间…

【信号处理】卡尔曼滤波(Matlab代码实现)

&#x1f468;‍&#x1f393;个人主页&#xff1a;研学社的博客 &#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜…

区块链解决方案-最新全套文件

区块链解决方案-最新全套文件一、建设背景区块链的五大场景1、合同存证2、产品防伪溯源3、供应链金融4、住房租赁5、贸易金融业务二、建设架构三、建设方案四、获取 - 区块链全套最新解决方案合集一、建设背景 区块链的五大场景 1、合同存证 传统的合同存证存在着被篡改、删…

【AcWing19】【LeetCode】DFS - 46/47/39/77/216/17

文章目录代码随想录在B站的视频讲得比AcWing好模板题1&#xff1a;排列数字模板题2&#xff1a;n皇后方法一方法二LeetCode 46. 全排列LeetCode 47. 全排列 II &#xff08;重复元素&#xff09;LeetCode 39. 组合总和LeetCode 77. 组合LeetCode 216. 组合总和 IIILeetCode 17.…

黑马点评--分布式锁

黑马点评–分布式锁 基本原理与不同实现方式对比&#xff1a; 什么是分布式锁&#xff1a; ​ 分布式锁&#xff1a;满足分布式系统或集群模式下多进程可见并且互斥的锁。 分布式锁的核心是实现多进程之间互斥&#xff0c;而满足这一点的方式有很多&#xff0c;常见的有三种…

Leetcode799. 香槟塔

文章目录题目链接题目大意解题思路代码(C)递推递归题目链接 点我 (^_^) 题目大意 解题思路 一开始看到这个 poured 范围这么大&#xff0c;以为是可以直接推出数学公式&#xff0c;但推了半天没推出来。 然后发现&#xff0c;直接从顶部开始模拟即可&#xff0c;某个row 下的…

HIve数仓新零售项目DWB层的构建

HIve数仓新零售项目 注&#xff1a;大家觉得博客好的话&#xff0c;别忘了点赞收藏呀&#xff0c;本人每周都会更新关于人工智能和大数据相关的内容&#xff0c;内容多为原创&#xff0c;Python Java Scala SQL 代码&#xff0c;CV NLP 推荐系统等&#xff0c;Spark Flink Kaf…

October 2019 Twice SQL Injection

目录 首先&#xff0c;尝试一下回显位的个数 第二步获取数据库名称 第三步&#xff0c;获得表名 第四步&#xff0c;获得列名 最后获取flag 总结 &#xff1a;二次注入&#xff0c;首先我们需要锁定是哪里哪个文本框存在二次注入&#xff0c;以这道题为例&#xff0c;首先…

计算机视觉算法——基于Transformer的语义分割(SETR / Segmenter / SegFormer)

计算机视觉算法——基于Transformer的语义分割&#xff08;SETR / Segmenter / SegFormer&#xff09;1. SETR1.1 网络结构及特点1.1.1 Decoder1.2 实验2. Segmenter2.1 网络结构及特点2.1.1 Decoder2.2 实验3. SegFormer3.1 网络结构及特点3.1.1 Overlap Patch Merging3.1.2 E…

CMSC5713-IT项目管理之八、敏捷项目管理Agile Project Management

文章目录8.1. Traditional SDLC8.2. Agile Methodologies8.3. Scrum8.3.1. Roles8.3.2. User Story8.3.3. Product Backlog8.3.4. Release Backlog8.3.5. Sprint Backlog8.3.6. Estimation8.3.7. Burning-down Chart8.3.8. Planning Meetings8.3.8.1. Daily Scrum Meeting8.3.8…

stm32f334timer15-17

stm32f334timer15-17介绍TIM15主要功能TIM16-17主要功能TIM15/TIM16/TIM17功能描述时基单位预分频器描述计数器模式递增计数模式重复计数器时钟选择捕获/比较频道输入捕获模式PWM输入模式&#xff08;仅适用于TIM15&#xff09;强制输出模式输出比较模式组合PWM模式&#xff08…

基于Springboot+vue开发实现自行车租赁管理系统

作者主页&#xff1a;编程千纸鹤 作者简介&#xff1a;Java、前端、Pythone开发多年&#xff0c;做过高程&#xff0c;项目经理&#xff0c;架构师 主要内容&#xff1a;Java项目开发、毕业设计开发、面试技术整理、最新技术分享 收藏点赞不迷路 关注作者有好处 项目编号&…

基于java学生选课系统

开发工具eclipse,jdk1.8 技术&#xff1a;java swing 数据库&#xff1a;mysql5.7 学生选课系统功能&#xff1a;管理员、教师、学生三个角色 一、管理员功能&#xff1a; 1.登录、修改密码、退出系统 2.学生管理&#xff1a;添加、修改、删除、查询 3.班级管理&#xff1a;添加…

力扣(LeetCode)23. 合并K个升序链表(C++)

模拟k路归并 朴素思想&#xff0c;类比二路归并&#xff0c; kkk 路归并多了一些参与比较的链表。我们可以在循环体内多一层循环&#xff0c;找到值最小的结点&#xff0c;插入答案链表的尾部。 朴素算法的时间复杂度 O(k∑i0k−1listsi.size())O(k\times\sum_{i0}^{k-1} lis…

做公众号1年啦

大家好&#xff0c;我是洋子 这里是北京的宇宙中心&#xff0c;西二旗地铁站&#xff0c;川流不息的人群&#xff0c;不断前进的脚步声&#xff0c;好像在告诉我们&#xff0c;新的一天工作即将开始 在地铁上&#xff0c;有人拿着手机刷着短视频&#xff0c;似乎还不想面对今…

第三十四篇 生命周期 - 易理解

通过之前一系列内容的推进来到生命周期的内容了&#xff0c;那么对于生命周期图示这块内容原文档内容有这么一段话&#xff1a;You don’t need to fully understand everything going on right now, but as you learn and build more, it will be a useful reference.&#xf…