A while back I had installed Docker and created some base images. I noticed a lot of folders were being created in folders C:\ProgramData\docker\containers and C:\ProgramData\docker\windowsfilter. Besides that I don't know exactly how these folders are different, I wanted to start from scratch, just so I know exactly when and how these folders were created and also to make sure I know how to limit the amount of folders. For that I need a deeper understanding of what happened and how I got here. So I removed all folders from both of the above folders.
Then in PowerShell ran command docker image pull mcr.microsoft.com/windows/servercore:ltsc2019 (as described here).
However, then I get error:
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.
I Googled that error and checked here.
So I ran 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 months ago 5.27GB
I'm an absolute newbie to Docker, so which step am I missing above? I basically want to create a completely new Docker image and install Scrapy in it.
PS. I posted earlier on something similar, but am unsure how to start from where I am now.
This error occurs because data for a layer already pulled and extracted (b30ce824...) was found to be missing when registering a layer based on it. The missing layer data was a windowsfilter subfolder with the same 64-character name.
When the windowsfilter folder is cleared, you need to also delete the images shown by docker image ls. This removes docker's links to the windowsfilter cached layers and will let you re-pull new images successfully.
N.B. that the docker image * commands are the intended way to manage this folder.