I have the following setup / workflow:
- My private registry with my own self-signed SSL certificate
- I Build an image and push it to the registry
- I pull the image on another host
- I delete the image from the registry from the registry using the API
- I call the registrys garbage collector
- I try to pull the image from the registry
- I try to push the image (not changed) to the registry again
- I try to pull the image on the other host again
Steps 1 - 6 are working fine, step 4 is kinda working (i guess) but steps 7 - 8 are not working as expected.
Expected results:
4. Image is completely removed from the registry
7. I push the image to the registry during this process some layers (which I deleted in step 4) get pushed.
8. I can pull the image again
Actual results:
4. The image is still present in the registry but has no tags. It seems like this is the way the registry handles image deletionâŠ
7. I can push the image but it says âLayer already existsâ for every layer
8. I cant pull the image anymore, docker says: Error response from daemon: manifest for registry.swarm/waterfall:latest not found: manifest unknown: manifest unknown
Notes:
After step 8 failed, checking the registry shows me that my image has a tag called âlatestâ but I cant retrieve the manifest for it using the API (basically the same error as âdocker pullâ returned)
Pushing the image wonât solve the problem.
Workaround:
The only way to fix the image in the registry is rebuilding the image on the host and pushing the new version.
Second case:
If I skip step 5 the pull in step 8 kinda works. It starts to pull the image but at some layer docker fails and says âretrying in x secondsâ. After a few minutes docker managed to pull the whole image. but fails with unexpected EOF
(nothing more)
Is this the intended behavior or am I doing something wrong?