【发布时间】:2021-12-23 19:57:08
【问题描述】:
我有一个 .tar 格式的 Docker 映像。当我使用sudo docker load < image.tar 加载它时,它工作正常。
我使用tar -xf image.tar 取消归档文件。然后我取消归档每个层文件,以便我可以编辑一些脚本并手动更新一些库。完成此操作后,我在每一层都使用了tar -cf,然后是整个图像。
当我以与加载原始图像相同的方式加载修改后的图像时,它不起作用。我收到此错误:
open /var/lib/docker/tmp/docker-import-742628246/image-edited/json: no such file or directory
我做错了什么导致了这个错误,我怎样才能正确地将修改后的 .tar 文件加载到 Docker 中?
P.S.:问题出现在 Docker 20.10.12 上,在 VMWare Workstation Player 内的 Kali Linux 2021.4 上运行。
【问题讨论】:
-
不是 100% 确定这是否是问题所在,但层被设计为不可变的。我怀疑您对这些层进行去皮、更改它们并重新去皮并没有被忽视。
-
@Turing85 这就是我对图层所做的。有没有办法在不导致此错误的情况下更改图层?
-
不确定。我宁愿写一个自定义的容器文件(或其他可重现的东西),而不是用这种方式“破解”图像。
-
为什么不加载图像然后构建一个新的图像,并使用本地注册表中的
Dockerfile对其进行扩展?然后,您可以根据需要导出新图像。