【发布时间】:2020-12-03 09:55:42
【问题描述】:
我按照此处的说明为虚幻引擎持续集成构建构建了一个 Docker Linux 映像:https://docs.adamrehn.com/ue4-docker/use-cases/continuous-integration
构建后(这需要具有大量磁盘空间的在线 Linux 虚拟机),我导出了映像,将其下载到我的 Windows 10 机器上,并尝试将映像导入到我的本地版本的 Docker 中进行测试。
导入失败,出现以下错误:
docker image import .\docker-image-linux-ue4-full-opengl.tar
Error response from daemon: re-exec error: exit status 1: output: base layer cannot have tombstones
除非 Docker 试图重新唤醒死者,否则我不知道这是什么意思,谷歌也不知道。这个错误有什么解释吗?我唯一能想到的是Windows版本的Docker无法读取在Linux上生成的镜像,但我的理解是应该支持在Windows上运行Linux镜像。
有人能解释一下吗?
【问题讨论】:
-
我不使用Windows,但根据this SO answer看来,使用Docker for Windows时需要手动启用Linux容器?
-
看了一些 Moby 的源代码后,似乎 tombstones 是 Docker 内部的一种机制。您不必手动删除墓碑。可能是系统配置错误,可能是您在 Windows 上运行 Linux 映像
-
错误来自 Moby repo 中的这个文件和行,仅供参考:
vendor/github.com/Microsoft/hcsshim/internal/wclayer/baselayer.go 133: return errors.New("base layer cannot have tombstones") -
看起来是 Linux 容器支持问题,切换到 Linux 容器模式已解决。