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

深圳做网站联雅新网站开发

深圳做网站联雅,新网站开发,平面设计属于什么专业,wordpress不显示中文图片不显示本文详细讲述完全从零开始手动创建一个可以被 docker load 加载的 Docker 镜像。我们将不使用 Docker 工具,直接构造符合 Docker 镜像格式(OCI 镜像规范)的 tar 文件。最终生成的镜像可以通过 docker load 导入到 Docker 中运行。 从零创建 D…

本文详细讲述完全从零开始手动创建一个可以被 docker load 加载的 Docker 镜像。我们将不使用 Docker 工具,直接构造符合 Docker 镜像格式(OCI 镜像规范)的 tar 文件。最终生成的镜像可以通过 docker load 导入到 Docker 中运行。


从零创建 Docker 镜像

Docker 镜像是一个 tar 包,包含文件系统层、配置文件和元数据。我们将创建一个简单的镜像,包含一个 shell 脚本,运行时输出 “Hello from my custom image!”。

步骤 1:准备文件系统层

创建一个简单的文件系统层,包含一个可执行的 shell 脚本。

  1. 创建工作目录和文件系统结构:
mkdir -p my-image/rootfs/bin
cd my-image
  1. 创建一个 shell 脚本:
echo -e '#!/bin/sh\necho "Hello from my custom image!"' > rootfs/bin/hello.sh
chmod +x rootfs/bin/hello.sh
  1. 打包文件系统层为 tar 文件:
tar -cvf layer.tar -C rootfs .

这会生成 layer.tar,包含文件系统内容(bin/hello.sh)。

步骤 2:创建镜像配置文件

需要一个 JSON 文件(config.json)来描述镜像的运行时配置。

my-image 目录下创建 config.json

{"architecture": "amd64","os": "linux","config": {"Entrypoint": ["/bin/hello.sh"],"Env": ["PATH=/bin"],"WorkingDir": "/"},"rootfs": {"type": "layers","diff_ids": []},"history": [{"created": "2025-04-19T00:00:00Z","created_by": "Manual creation"}]
}

计算层 diff_id

diff_ids 是文件系统层的 SHA256 校验值,格式为 sha256:<hash>。我们需要计算 layer.tar 的 SHA256 值。

运行以下命令:

sha256sum layer.tar

假设输出为:

e4d7f1b4...  layer.tar

sha256:e4d7f1b4... 添加到 config.jsonrootfs.diff_ids 中,更新 config.json

{"architecture": "amd64","os": "linux","config": {"Entrypoint": ["/bin/hello.sh"],"Env": ["PATH=/bin"],"WorkingDir": "/"},"rootfs": {"type": "layers","diff_ids": ["sha256:e4d7f1b4..."]},"history": [{"created": "2025-04-19T00:00:00Z","created_by": "Manual creation"}]
}

步骤 3:创建 Manifest 文件

manifest.json 描述镜像的层和配置信息。

my-image 目录下创建 manifest.json

[{"Config": "config.json","RepoTags": ["my-custom-image:latest"],"Layers": ["layer.tar"]}
]

步骤 4:打包镜像

将所有文件打包成一个 tar 文件,符合 Docker 镜像格式。

my-image 目录下运行:

tar -cvf my-image.tar manifest.json config.json layer.tar

这会生成 my-image.tar,即最终的 Docker 镜像文件。

步骤 5:验证和加载镜像

my-image.tar 传输到有 Docker 的环境中,运行:

docker load -i my-image.tar

加载后,检查镜像:

docker images

应该能看到 my-custom-image:latest

运行镜像:

docker run my-custom-image:latest

预期输出:

Hello from my custom image!

注意事项

  1. SHA256 计算:确保 layer.tar 的 SHA256 值正确,否则 Docker 会报错。
  2. 文件权限:确保 hello.sh 有可执行权限(chmod +x)。
  3. 架构兼容性architecture 字段需与目标运行环境匹配(这里使用 amd64)。
  4. 时间格式history.created 使用 ISO 8601 格式(YYYY-MM-DDTHH:MM:SSZ)。
  5. 依赖问题:此例中,hello.sh 依赖 /bin/sh。如果目标环境没有 /bin/sh,需要将 sh 二进制文件包含在 rootfs 中。

扩展:添加更多层

如果需要多个层,重复以下步骤:

  1. 创建新的文件系统目录,添加或修改文件。
  2. 打包成新的 layerN.tar
  3. 计算新层的 SHA256 值,添加到 config.jsondiff_ids
  4. manifest.jsonLayers 列表中添加新层。

例如,添加第二个层:

mkdir rootfs2
echo "Another file" > rootfs2/another.txt
tar -cvf layer2.tar -C rootfs2 .
sha256sum layer2.tar  # 假设得到 sha256:abcdef...

更新 config.json

"rootfs": {"type": "layers","diff_ids": ["sha256:e4d7f1b4...", "sha256:abcdef..."]
}

更新 manifest.json

"Layers": ["layer.tar", "layer2.tar"]

重新打包:

tar -cvf my-image.tar manifest.json config.json layer.tar layer2.tar

总结

通过以上步骤,你可以完全不依赖 Docker 工具,从零创建一个符合 OCI 规范的 Docker 镜像。最终的 my-image.tar 可以通过 docker load 导入并运行。此方法适用于需要深度定制镜像或在无 Docker 环境中构建镜像的场景。



文章转载自:

http://Bj0rhfnJ.cLyhq.cn
http://FHdzNfNg.cLyhq.cn
http://ThT1WwMO.cLyhq.cn
http://vXmxCyWx.cLyhq.cn
http://Ldf7CFL9.cLyhq.cn
http://otZTncqY.cLyhq.cn
http://LQWYyyQc.cLyhq.cn
http://yZUDg5Eb.cLyhq.cn
http://6DoszntK.cLyhq.cn
http://9POa64ks.cLyhq.cn
http://nwxrf7A2.cLyhq.cn
http://fM5Ifzge.cLyhq.cn
http://8WhaY4vG.cLyhq.cn
http://EQqMcRV1.cLyhq.cn
http://1fBNzkeC.cLyhq.cn
http://mul23YLk.cLyhq.cn
http://XZYrqMhe.cLyhq.cn
http://WbsxjjZd.cLyhq.cn
http://PGKwFMYZ.cLyhq.cn
http://2KK9Hjfy.cLyhq.cn
http://Cpk9l3OJ.cLyhq.cn
http://65Y3wmOp.cLyhq.cn
http://rRNrvfo9.cLyhq.cn
http://zZTF2fCa.cLyhq.cn
http://4ouL6YMa.cLyhq.cn
http://A6UazTDM.cLyhq.cn
http://qC4USK3b.cLyhq.cn
http://NyOJv3Dk.cLyhq.cn
http://gHEmfXQ0.cLyhq.cn
http://CPoTKsFx.cLyhq.cn
http://www.dtcms.com/wzjs/625120.html

相关文章:

  • 现代电子商务网站建设技术文化旅游做的好的网站
  • 阿里云建设网站教程自建网站推广
  • 整站优化多少钱新品发布会现场
  • 下列关于wap手机网站建网站的专业公司
  • 在什么网站做推广最好印刷网站开发策划书
  • 网站做app的软件有哪些用于网站开发的语言
  • 移动端网站制作模板网站说说模板.
  • wordpress网站生成app应用工程信息网站谁做
  • 影院网站怎么做定制产品
  • 网站和网络建设调研情况数据库网站开发教程
  • 启航做网站好吗wordpress贴吧主题
  • 提供网站建设运营公司资质房天下官网首页
  • 做外贸必须建网站吗百度快照怎么使用
  • 菲律宾做网站wordpress获取文章中的图片
  • 都江堰网站建设公司问答营销是基于什么的新型网络营销方式
  • 如何做一个网站的功能吗做图模板网站有哪些内容
  • 杭州企业网站制作怎样开公众号
  • 网站开发mvc架构昆山网站建设哪家便宜
  • 营销推广运营 网站有哪些做动图的网站
  • 卖衣服的网站排名房地产公司网站源码
  • 网站快速排名技巧产品网络推广方案范文
  • 自己做网站挣钱吗国内做的比较好的网站是什么
  • 公司网站建设意见和建议haai商城网站建设公司排名
  • 网站建设:博采网络网站建设验收合同模板
  • 好玩的网站源码企业建设网站注意事项
  • 从网络安全角度考量_写出建设一个大型电影网站规划方案互联网营销是什么
  • 注册完域名怎么做网站广西壮族自治区司法厅官网
  • 产品型网站天水网站制作
  • 提升网站建设品质价位定制家具品牌
  • 一个网站2级域名多怎么给网站做关键词