У меня была эта проблема с очень маленьким слоем, который был поврежден или сломан в реестре V2 по неизвестной причине.docker pull
не удалось с «неожиданным EOF» после повторной попытки слоя (в данном случае идентифицируемого как «1f8fd317c5a4»).
Восстановление изображения из источника и попытка docker push
сказал, что «слой уже существует», не исправляяпроблема.
Мне удалось удалить нарушающий слой, используя curl
примерно так;
curl -H 'Accept: application/vnd.docker.distribution.manifest.v2+json' -sk "https://registry.local/v2/image-name/manifests/1033-develop-7e414712"
(замените ваш реестр на «registry.local»,имя вашего изображения для «image-name» и ваш тег изображения или «последний» для «1033-develop-7e414712».)
Получите полный дайджест sha256 для слоя 1f8fd317c5a4 из вывода JSON и используйте егов следующей команде:
curl -k -X DELETE "https://registry.local/v2/image-name/blobs/sha256:1f8fd317c5a406a75130dacddc02bd09a9abf44e068e2730dd8f5238666bb390"
Теперь вы сможете docker push registry.local/image-name:1033-develop-7e414712
загрузить слой, который вы удалили, и все работает.