Docker 在 Windows Server 2019 上:无法注册层:无法创建缺少父层的层
Docker on Windows Server 2019: failed to register layer: Cannot create layer with missing parent
不久前,我安装了 Docker 并创建了一些基本映像。我注意到在文件夹 C:\ProgramData\docker\containers
和 C:\ProgramData\docker\windowsfilter
中创建了很多文件夹。除此之外,我不知道这些文件夹究竟有何不同,我想从头开始,这样我就可以确切地知道这些文件夹是何时以及如何创建的,并确保我知道如何限制文件夹的数量。为此,我需要更深入地了解发生了什么以及我是如何来到这里的。所以我从上述两个文件夹中删除了所有文件夹。
然后在 PowerShell 运行 命令中 docker image pull mcr.microsoft.com/windows/servercore:ltsc2019
(如 here 所述)。
但是,我得到错误:
ltsc2019: Pulling from windows/servercore
4612f6d0b889: Already exists
c67ded6868b6: Extracting [==================================================>] 967.7MB/967.7MB
failed to register layer: Cannot create layer with missing parent b30ce8240c3d9379bedb21d473387a1511327572e7f1721c32ca01b0b1f7fac9: CreateFile C:\ProgramData\docker\windowsfilter\b30ce8240c3d9379bedb21d473387a1511327572e7f1721c32ca01b0b1f7fac9: The system cannot find the file specified.
我用 Google 搜索了那个错误并检查了 here。
所以我运行docker images
:
REPOSITORY TAG IMAGE ID CREATED SIZE
scrapy latest d6cfd054a887 3 months ago 5.9GB
<none> <none> edb9e1b2db76 3 months ago 5.27GB
hello-world latest 096dec0e4e75 4 months ago 252MB
mcr.microsoft.com/windows/servercore ltsc2019 152749f71f8f 4 个月前 5.27GB
我是 Docker 的绝对新手,所以我错过了上面的哪一步?我基本上想创建一个全新的 Docker 图像并在其中安装 Scrapy。
PS。我 在做类似的事情,但不确定如何从我现在的位置开始。
发生此错误是因为在注册 based 层时发现已经提取和提取的层 (b30ce824...
) 的数据丢失。丢失的层数据是具有相同 64 个字符名称的 windowsfilter
子文件夹。
清除windowsfilter
文件夹时,您需要同时删除docker image ls
显示的图片。这将删除 docker 到 windowsfilter
缓存层的链接,并让您成功重新提取新图像。
N.B。 docker image *
命令是管理此文件夹的预期方式。
不久前,我安装了 Docker 并创建了一些基本映像。我注意到在文件夹 C:\ProgramData\docker\containers
和 C:\ProgramData\docker\windowsfilter
中创建了很多文件夹。除此之外,我不知道这些文件夹究竟有何不同,我想从头开始,这样我就可以确切地知道这些文件夹是何时以及如何创建的,并确保我知道如何限制文件夹的数量。为此,我需要更深入地了解发生了什么以及我是如何来到这里的。所以我从上述两个文件夹中删除了所有文件夹。
然后在 PowerShell 运行 命令中 docker image pull mcr.microsoft.com/windows/servercore:ltsc2019
(如 here 所述)。
但是,我得到错误:
ltsc2019: Pulling from windows/servercore
4612f6d0b889: Already exists
c67ded6868b6: Extracting [==================================================>] 967.7MB/967.7MB
failed to register layer: Cannot create layer with missing parent b30ce8240c3d9379bedb21d473387a1511327572e7f1721c32ca01b0b1f7fac9: CreateFile C:\ProgramData\docker\windowsfilter\b30ce8240c3d9379bedb21d473387a1511327572e7f1721c32ca01b0b1f7fac9: The system cannot find the file specified.
我用 Google 搜索了那个错误并检查了 here。
所以我运行docker images
:
REPOSITORY TAG IMAGE ID CREATED SIZE
scrapy latest d6cfd054a887 3 months ago 5.9GB
<none> <none> edb9e1b2db76 3 months ago 5.27GB
hello-world latest 096dec0e4e75 4 months ago 252MB
mcr.microsoft.com/windows/servercore ltsc2019 152749f71f8f 4 个月前 5.27GB
我是 Docker 的绝对新手,所以我错过了上面的哪一步?我基本上想创建一个全新的 Docker 图像并在其中安装 Scrapy。
PS。我
发生此错误是因为在注册 based 层时发现已经提取和提取的层 (b30ce824...
) 的数据丢失。丢失的层数据是具有相同 64 个字符名称的 windowsfilter
子文件夹。
清除windowsfilter
文件夹时,您需要同时删除docker image ls
显示的图片。这将删除 docker 到 windowsfilter
缓存层的链接,并让您成功重新提取新图像。
N.B。 docker image *
命令是管理此文件夹的预期方式。