jingxiang制作
文章目录
- jingxiang制作
- 为什么需要jingxiang制作
- 如何进行jingxiang制作
- 快照方式制作jingxiang
- 制作命令
- `do cker` commit
- 快照制作jingxiang
- 创建临时工作目录
- 编写一个实例代码
- 启动一个容器
- 替换国内软件源
- 安装编译软件
- 源代码拷贝到容器中
- 编译运行
- 提交为一个jingxiang
- 测试是否可以正常运行
- `do cker file`jingxiang制作
- 什么是`do cker file`
- 为什么需要`do cker file`
- 如何进行`do cker file`编写
- jingxiang制作常见问题整理
- 1. `ADD` 与 `COPY` 的区别
- 2. `CMD` 与 `ENTRYPOINT` 的区别
- 3. 如何使用多个 `FROM` 指令
- 4. 快照与使用 ``do cker file`` 制作jingxiang的区别
- 5. 什么是空悬jingxiang(Dangling Images)
- 6. 中间层jingxiang的概念
jingxiang制作
为什么需要jingxiang制作
在一些特定的环境下,官方的jingxiang无法满足要求,因此就需要使用一定手段来自定义jingxiang来满足要求,通常情况下,可能会有下面的原因导致需要jingxiang:
- 编写的代码要打包到jingxiang中直接跟随jingxiang发布
- 第三方制作的内容安全性未知,可能有安全问题
- 特定的需求或者功能不能满足
如何进行jingxiang制作
制作容器jingxiang,主要有两种方式:
- 制作快照方式获得jingxiang,在基础jingxiang上,先登录容器中,安装jingxiang需要的所有软件,再制作快照
do cker file
的方式进行构建jingxiang,这种通常是经常更新的jingxiang,把软件安装的流程写成do cker file
,使用do cker
build构建容器jingxiang
快照方式制作jingxiang
制作命令
do cker
commit
功能:从容器中创建一个新的jingxiang
常见的参数有,-a表示jingxiang作者,-c表示使用do cker file
指令来创建jingxiang,可以修改启动指令,-m表示提交时的说明文字,-p表示在commit的过程中把容器暂停
比如:
`do cker` commit xxxx zbh/mynginx:v01
快照制作jingxiang
创建临时工作目录
root@VM-24-7-ubuntu:/data/myworkdir/compose/base# cd ~
root@VM-24-7-ubuntu:~# mkdir -p /data/zbh/commitimage
root@VM-24-7-ubuntu:~# cd /data/zbh/commitimage/
编写一个实例代码
root@VM-24-7-ubuntu:/data/zbh/commitimage# cat demo.cc
#include <iostream>
using namespace std;int main()
{cout << "hello `do cker` commitimage" << endl;return 0;
}
启动一个容器
root@VM-24-7-ubuntu:/data/zbh/commitimage# `do cker` container run -it --name mycppcommit centos:7 bash
Unable to find image 'centos:7' locally
7: Pulling from library/centos
2d473b07cdd5: Pull complete
Digest: sha256:be65f488b7764ad3638f236b7b515b3678369a5124c47b8d32916d6487418ea4
Status: Downloaded newer image for centos:7
替换国内软件源
[root@bd60ae387a04 /]# sed -i.bak \
> -e 's|^mirrorlist=|#mirrorlist=|g' \
> -e 's|^#baseurl=http://mirror.centos.org/centos|baseurl=https://mirrors.ustc.edu.cn/centos|g' \
> /etc/yum.repos.d/CentOS-Base.repo
[root@bd60ae387a04 /]# yum makecache
Loaded plugins: fastestmirror, ovl
Determining fastest mirrors
base | 3.6 kB 00:00:00
extras | 2.9 kB 00:00:00
updates | 2.9 kB 00:00:00
(1/10): base/7/x86_64/group_gz | 153 kB 00:00:00
(2/10): base/7/x86_64/filelists_db | 7.2 MB 00:00:00
(3/10): base/7/x86_64/primary_db | 6.1 MB 00:00:00
(4/10): base/7/x86_64/other_db | 2.6 MB 00:00:00
(5/10): extras/7/x86_64/primary_db | 253 kB 00:00:00
(6/10): extras/7/x86_64/filelists_db | 305 kB 00:00:00
(7/10): extras/7/x86_64/other_db | 154 kB 00:00:00
(8/10): updates/7/x86_64/primary_db | 27 MB 00:00:01
(9/10): updates/7/x86_64/other_db | 1.6 MB 00:00:00
(10/10): updates/7/x86_64/filelists_db | 15 MB 00:00:02
Metadata Cache Created
安装编译软件
这个直接安装就可以了:
yum install -y gcc
源代码拷贝到容器中
root@VM-24-7-ubuntu:/data/zbh/commitimage# `do cker` cp ./demo.cc mycppcommit:/src
Successfully copied 2.05kB to mycppcommit:/src
编译运行
[root@bd60ae387a04 src]# g++ demo.cc -o demo
[root@bd60ae387a04 src]# ./demo
hello `do cker` commitimage
提交为一个jingxiang
root@VM-24-7-ubuntu:/data/zbh/commitimage# `do cker` commit mycppcommit mycppimg:v1.0
sha256:c92a4ac1b0feb0aaeb9086889511f1b77321b2eb843b8a2e56914b5c28d56c25
测试是否可以正常运行
root@VM-24-7-ubuntu:/data/zbh/commitimage# `do cker` run -it mycppimg:v1.0 ./src/demo
hello `do cker` commitimage
do cker file
jingxiang制作
什么是do cker file
jingxiang的定制实际上就是定制每一层所添加的配置,文件,如果把每一层修改,安装,构建,操作的命令写到一个脚本里面,然后用这个脚本来进行构建,定制jingxiang,这个脚本就是所谓的do cker file
do cker file
整体上来说就是一个文本文件,在它内部包含了一个一个的指令,每一个指令都会构建一层,其实就是前面执行的哪一个一个的代码
当写好了一份do cker file
后,do cker
会按照顺序依次执行do cker file
中的内容
为什么需要do cker file
对于do cker file
来说,其实在最开始的介绍中已经说过了,适合进行频繁更新的场景,这里再展开进行介绍:
- 可以按照需求进行自定义jingxiang
- 方便进行自动化构建,重复执行
- 维护修改比较方便
- 更加标准化
如何进行do cker file
编写
这里对于do cker file
的规则就不多进行列举了,直接用实例来进行演示,会在do cker file
后附带有对应的解释规则
jingxiang制作常见问题整理
1. ADD
与 COPY
的区别
-
ADD:
- 功能更强大,能从构建主机的本地文件系统或远程 URL 复制文件/目录到jingxiang文件系统。
- 支持自动解压特定类型的压缩文件。
- 相较于
COPY
,它更灵活,但使用时需注意其额外功能可能带来的复杂性。
-
COPY:
- 仅用于从构建主机本地文件系统复制文件/目录到jingxiang。
- 当只需简单拷贝文件,特别是压缩包时,推荐使用
COPY
。
2. CMD
与 ENTRYPOINT
的区别
-
ENTRYPOINT:
- 定义容器启动时运行的命令,且不可被 ``do cker
run
的命令行参数覆盖,这些参数会作为ENTRYPOINT
命令的参数。 do cker file
中只能有效指定一个ENTRYPOINT
(如果有多个,只有最后一个生效)。- 可与
CMD
结合使用,为ENTRYPOINT
提供默认参数。
- 定义容器启动时运行的命令,且不可被 ``do cker
-
CMD:
- 也定义容器启动命令或参数,但可被 ``do cker
run
的命令行参数覆盖。 - 如果同时存在
ENTRYPOINT
和CMD
,CMD
的值将作为ENTRYPOINT
的默认参数。
- 也定义容器启动命令或参数,但可被 ``do cker
3. 如何使用多个 FROM
指令
- 多个
FROM
指令实现多阶段构建,每个阶段创建一个临时jingxiang,最终jingxiang基于最后一个FROM
指令。 - 允许在不同阶段分别处理编译、安装、清理等工作,然后仅将必要的文件从前一阶段复制到下一阶段,以减少最终jingxiang的大小。
- 特别适用于分离编译环境和运行环境。
4. 快照与使用 do cker file
制作jingxiang的区别
do cker file
使用提供了标准化、可复现的jingxiang构建过程,允许通过脚本化的方式精确控制jingxiang每一层的内容和配置。- 快照更多指的是jingxiang构建过程中对文件系统的即时状态保存,而
do cker file
则是指导这一系列快照生成的具体指令集。
5. 什么是空悬jingxiang(Dangling Images)
- 空悬jingxiang指的是仓库名和标签均为
<none>
的jingxiang,通常是因为更新或重建导致旧jingxiang被新的覆盖。 - 可以通过 ``do cker
image ls -f dangling=true
命令列出并安全删除,以释放空间。
6. 中间层jingxiang的概念
- 中间层jingxiang是
do cker
构建过程中为了优化和复用资源而产生的。 - 它们不会直接显示在默认的
do cker` image ls` 输出中,需使用
do ckerimage ls -a
查看所有(包括中间层)jingxiang。 - 这些jingxiang是其他jingxiang的基础,不应随意删除,因为它们是依赖项,当依赖它们的jingxiang被删除时,这些中间层也会被自动清理。
相关文章:
jingxiang制作
文章目录 jingxiang制作为什么需要jingxiang制作如何进行jingxiang制作 快照方式制作jingxiang制作命令do cker commit 快照制作jingxiang创建临时工作目录编写一个实例代码启动一个容器替换国内软件源安装编译软件源代码拷贝到容器中编译运行提交为一个jingxiang测试是否可以正…...
【数据结构】线性表之《顺序表》超详细实现
顺序表 一.数据结构1.逻辑结构2.物理结构 二.顺序表的分类1.静态顺序表2.动态顺序表 三.顺序表的实现1.创建顺序表2.初始化顺序表3.判断是否扩容4.打印顺序表5.插入操作1.头插2.尾插3.按照下标插入 6.删除操作1.头删2.尾删3.按照下标删除 7.查找数据8.修改数据9.清空顺序表10.销…...
开源模型应用落地-音乐生成模型-suno/bark深度使用-AIGC应用探索(六)
一、前言 学习音乐生成模型具有极其重要的价值。通过对音乐生成模型的深入学习,我们能够探索到音乐创作的全新边界和可能性。它不仅可以开启一扇通往无限音乐创意的大门,让我们领略到科技与艺术完美融合所带来的震撼与惊喜,还能帮助我们在音乐领域实现前所未有的突破和创新。…...
为何选择Xinstall?告别邀请码,让App推广更便捷!
在互联网日益繁荣的今天,App的推广和运营成为了各大企业关注的重点。然而,传统的推广方式如邀请码限制,往往会给用户带来不便,同时也限制了App的快速增长。在这个背景下,Xinstall凭借其独特的功能和服务,成…...
JavaScript基础入门
目录 任务描述 相关知识 JavaScript语言简介 JavaScript注释 搭建JavaScript的运行环境 JavaScript输出 弹出对话框模式 控制台模式 页面输出模式 编程要求 任务描述 要了解一门编程语言,要从输出开始。 本关任务:采用相关知识中介绍的任意一…...
windows11子系统Ubuntu 22.04.4子安装图形化界面
1、windows11家庭版本设置 打开虚拟机安装许可 2、Microsoft Store下载安装ubuntu 我使用的是22.04.4 LTS版本 3、 打开ubuntu 命令窗口 1、打开win11的命令行,在下拉三角下标,打开,可以看到有Ubuntu 的选项,点击即可进入linux命…...
对 2024 年美赛选题的建议
对2024年美赛选题的建议包括: 1. 深入探讨当下全球面临的重大问题和挑战:鉴于美赛通常聚焦于全球性议题,如气候变化、可持续发展、数据分析等,参赛学生应关注这些议题,并深入研究相关数据与背景信息,以提出…...
PyTorch tutorials:快速学会使用PyTorch
准备深入学习transformer,并参考一些资料和论文实现一个大语言模型,顺便做一个教程,今天是番外篇,介绍下PyTorch,后面章节实现代码主要使用这个框架。 本系列禁止转载,主要是为了有不同见解的同学可以方便联…...
【CT】LeetCode手撕—手撕快排
目录 题目1-思路-快排1-1 快排的核心思想快速排序算法步骤优美的调整区间 1-2 ⭐快排的实现 2- 实现⭐912. 排序数组——题解思路 3- ACM 实现 题目 原题连接:912. 排序数组 1-思路-快排 1-1 快排的核心思想 选择一个基准 基准左侧的元素都小于该元素基准右侧的元…...
使用ARK工具ATool清除典型蠕虫MyDoom
1 概述 在长期的日常安全事件监测过程中,安天CERT经常捕获到大量的MyDoom蠕虫样本和传播该蠕虫的钓鱼邮件。受害主机感染MyDoom后会被放置后门,以便攻击者下发后续恶意软件,进行攻击或窃密等操作。MyDoom蠕虫最早发现于2004年&…...
在hue中使用ooize调度ssh任务无法执行成功,无法查看错误
ssh执行失败,但是hue没有给出明确的错误原因: 经过经验分析,原来是服务器上的sh文件用的是doc/window格式,需要使用notepad将格式改为unix之后就可以正常执行。 特此记录,避免遗忘知识点...
一套轻量、安全的问卷系统基座,提供面向个人和企业的一站式产品级解决方案
大家好,今天给大家分享的是一款轻量、安全的问卷系统基座。 XIAOJUSURVEY是一套轻量、安全的问卷系统基座,提供面向个人和企业的一站式产品级解决方案,快速满足各类线上调研场景。 内部系统已沉淀 40种题型,累积精选模板 100&a…...
3秒生成!这个AI模型画风也太治愈了,新手也能轻松驾驭
还在为不会画画而苦恼吗?别担心,今天给大家介绍一个超好用的AI模型——Soft and Squishy Linework,即使是小白也能轻松生成可爱的动漫图像! Soft and Squishy Linework:专门生成柔和的、低保真(lofi&#…...
数字人全拆解:如何构建一个基于大模型的实时对话3D数字人?
简单地说,数字人就是在数字世界的“人”。当前语境下我们谈到的数字人通常指的是借助AI技术驱动的虚拟世界人物,具备与真实人类相似甚至接近的外形、感知、交互与行为能力。 AI技术在智能数字人的应用中举足轻重,特别是随着大模型能力的涌现…...
实战 | 基于YOLOv10的车辆追踪与测速实战【附源码+步骤详解】
《博主简介》 小伙伴们好,我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。 ✌更多学习资源,可关注公-仲-hao:【阿旭算法与机器学习】,共同学习交流~ 👍感谢小伙伴们点赞、关注! 《------往期经典推…...
2024北京智源大会
北京智源大会是年度国际性人工智能高端学术交流的盛会,定位于内行的AI盛会。智源大会紧密围绕当前人工智能学术领域迫切需要解决的问题,以及产业落地过程中存在的诸多挑战,开展深入探讨。智源研究院是2018年11月份成立的一家人工智能领域的新…...
youlai-boot项目的学习—本地数据库安装与配置
数据库脚本 在项目代码的路径下,有两个版本的mysql数据库脚本,使用对应的脚本就安装对应的数据库版本,本文件选择了5 数据库安装 这里在iterm2下使用homebrew安装mysql5 brew install mysql5.7注:记得配置端终下的科学上网&a…...
Android平台如何实现多路低延迟RTSP|RTMP播放?
技术背景 实际上,我们在2015年做Android平台RTSP、RTMP播放模块的时候,第一版就支持了多实例播放,因为SDK设计比较灵活,做个简单的player实例封装即可实现多实例播放(Android Unity的就有多路demo)&#x…...
深入探索Java开发世界:Java基础~类型分析大揭秘
文章目录 一、基本数据类型二、封装类型三、类型转换四、集合类型五、并发类型 Java基础知识,类型知识点梳理~ 一、基本数据类型 Java的基本数据类型是语言的基础,它们直接存储在栈内存中,具有固定的大小和不变的行为。 八种基本数据类型的具…...
短URL服务设计
引言 在营销系统里,为了增加系统的活跃用户数,经常会有各种各样的营销活动。这类活动几乎都是为了充分利用存量用户的价值,促使他们分享产品或App以达到触达到更多用户的目的。又或者是出于营销目的,群发优惠券触达短信这种场景。…...
Kafka集成flume
1.flume作为生产者集成Kafka kafka作为flume的sink,扮演消费者角色 1.1 flume配置文件 vim $kafka/jobs/flume-kafka.conf # agent a1.sources r1 a1.sinks k1 a1.channels c1 c2# Describe/configure the source a1.sources.r1.type TAILDIR #记录最后监控文件…...
如何让视频有高级感 高级感视频制作方法 高级感视频怎么剪 会声会影视频剪辑制作教程 会声会影中文免费下载
高质量视频通常具有清晰的画面、优质的音频和令人印象深刻的视觉效果。这篇文章来了解如何让视频有高级感,高级感视频制作方法。 一、如何让视频有高级感 要让视频有高级感,要注意以下几个要点: 1、剧本和故事性:一个好的剧本和…...
详解|访问学者申请被拒原因有哪些?
访问学者项目为全球科研人员提供了一个难得的机会,让他们能够跨越国界,深入不同的学术环境,进行学术交流和合作。然而,并非所有申请者都能如愿以偿地获得这一机会。本文将对访问学者申请中常见的被拒原因进行详细解析,…...
[鹤城杯 2021]BabyRSA
题目: from Crypto.Util.number import getPrime, bytes_to_long from secret import flagp getPrime(1024) q getPrime(1024) n p * q e 65537 hint1 p >> 724 hint2 q % (2 ** 265) ct pow(bytes_to_long(flag), e, n) print(hint1) print(hint2) p…...
西安市工业倍增引导基金子基金申报条件流程和材料程序指南(2024年)
一、基本情况 产业投资基金是以产业发展为首要目标,围绕经济社会发展规划和产业发展政策,发挥“有效市场”作用,支持重点领域、重点产业、重点区域(如:全市六大支柱产业、五大新兴产业领域成熟期重点规模以上企业以及“…...
微型丝杆的耐用性和延长使用寿命的关键因素!
无论是机械设备,还是精密传动元件,高精度微型丝杆是各种机械设备中不可或缺的重要组件。它的精度和耐用性直接影响着工作效率和产品品质,在工业技术不断进步的情况下,对微型丝杆的性能要求也越来越高,如何提升微型丝杆…...
音频文件下载后,如何轻松转换格式?
在我们日常的数字生活中,下载各种音频文件是司空见惯的事情。然而,有时候我们可能需要将这些音频文件转换为不同的格式,以适应不同的设备或编辑需求。无论您是希望将下载的音频文件转换为通用的MP3格式,还是需要将其转换为高保真的…...
Intel平台,13600KF+3060Ti,虚拟机安装macOS 14(2024年6月)
距离上次装macOS虚拟机已经有一段时间了,macOS系统现在大版本升级的速度也是越来越快了,由于Office只支持最新三个版本的macOS,所以现在保底也得安装macOS 12了,我这次是用macOS 14做实验,13和12的安装方式和macOS 14一…...
Cookie、Session、Token的关系和区别
关系 Session与Cookie:Session通常依赖于Cookie来工作。当服务器为客户端创建一个Session时,它会在服务器上存储与客户端相关的信息,并将一个唯一的SessionID通过Cookie发送给客户端。客户端在后续的请求中会携带这个Cookie(包含…...
Windows 11 中安装 Docker Desktop 并安装镜像
本该主要介绍在 Windows 11 中安装 Docker Desktop 时的一些准备工作,以及该如何下载和安装,然后分别使用管理界面和 Docker 命令安装两个镜像。 一、准备工作 在 Windows 11 中安装 Docker Desktop 前,需要做一些准备。打开 【Windows 功能…...
深圳 德 网站建设/陕西网站关键词自然排名优化
严格模式是es5之后新增的。 ie10以上的版本才支持这种严格模式。...
岱岳区建设信息网站/外贸网站建站平台
A1 网友年龄 某君新认识一网友。当问及年龄时,他的网友说:“我的年龄是个2位数,我比儿子大27岁,如果把我的年龄的两位数字交换位置,刚好就是我儿子的年龄” 请你计算:网友的年龄一共有多少种可能情况&…...
太原推广型网站制作/seo牛人
生成对抗网络 | Python实现GANformer生成对抗神经网络结合Transformers 目录 生成对抗网络 | Python实现GANformer生成对抗神经网络结合Transformers效果一览文章概述环境准备模型描述程序设计参考资料效果一览 文章概述 生成对抗网络 | Python实现GANformer生成对抗神经网络结…...
在重庆找做网站的技术人员/淘宝推广软件哪个好
题目链接 分析: 改改题面我就能A了 —————yyp 题面说给出一个无向无环图 实际上这就是“森林”啊,ta由多棵树组成 首先,本题的优化目标有两个: (我们做过这样的题啊) 放置的灯数a尽量少,…...
泰安网站设计/今天发生了什么重大新闻
转载自:http://msdn.microsoft.com/zh-cn/library/system.badimageformatexception%28vvs.100%29.aspx BadImageFormatException 类 当动态链接库 (DLL) 或可执行程序的文件映像无效时引发的异常。 解决办法: DLL 或可执行文件作为 64 位程序集加载&…...
如何找网站做推广/长尾关键词搜索网站
一、SSH协议SSH是一种协议标准,其目的是实现安全远程登录以及其它安全网络服务。二、SSH登录过程SSH登录主要分为两个阶段:1)协商客户端和服务端双方通信所使用的共享密钥,并用这个共享密钥实现后续会话过程的对称加密;…...