我在使用Docker时遇到了问题。 情况是这样的:我们使用Codebuild+Packer+Docker创建AMI,用于部署。在这个步骤中,我们从Artifactory拉取镜像,除了拉取一个大于1GB的层之外,所有步骤都通过了。经过多次重试后,它仍然失败并显示错误消息:“Download failed, retrying: unknown blob”,然后出现“unexpected EOF”。您有没有遇到过这样的问题?非常感谢任何评论或建议。
我在使用Docker时遇到了问题。 情况是这样的:我们使用Codebuild+Packer+Docker创建AMI,用于部署。在这个步骤中,我们从Artifactory拉取镜像,除了拉取一个大于1GB的层之外,所有步骤都通过了。经过多次重试后,它仍然失败并显示错误消息:“Download failed, retrying: unknown blob”,然后出现“unexpected EOF”。您有没有遇到过这样的问题?非常感谢任何评论或建议。
这主要是由于网络信号不稳定 ( 因为我使用的是移动热点 )
配置了 docker 守护进程 以减少 tcp 数据包
$ dockerd --max-concurrent-downloads <int>
这里的<int>表示您想同时下载的docker pull层数量。
默认值为3
在我的情况下,我将其设置为2
$ dockerd --max-concurrent-downloads 2 &>/dev/null
这样做的缺点是牺牲了你宝贵的时间 :)
需要花费很长时间
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" 或您的镜像标签替换为 "latest"。)curl -k -X DELETE "https://registry.local/v2/image-name/blobs/sha256:1f8fd317c5a406a75130dacddc02bd09a9abf44e068e2730dd8f5238666bb390"
现在,您就可以上传您删除的层次并使一切正常,命令如下:
docker push registry.local/image-name:1033-develop-7e414712
在Windows上使用Docker Desktop时,找不到dockerd
命令,然后在daemon.json
文件中添加以下条目并重新启动docker服务。
"max-concurrent-downloads": 1
C:\Users\<user-name>\.docker\daemon.json
。dockerd
命令。 - Brylie Christopher Oxley$ dockerd --max-concurrent-downloads 2
$ dockerd --max-download-attempts 10
停止docker服务:sudo service docker stop
使用降低的max-concurrent-downloads
和增加的max-download-attempts
运行docker服务,以适应您的互联网带宽(对我来说,不幸的是只能设置为1):sudo dockerd --max-concurrent-downloads 1 --max-download-attempts 10
注:我不是docker专家。但是,我相信通过向注册表或您的docker客户端添加一些配置,有更好的方法来完成此操作。
docker build --no-cache -t
这并不完全符合 OP 描述的情况,但我会在此发布以供将来参考。Docker Desktop 4.15.0 引入了一个错误,导致我遇到了类似的问题。根据使用的 Docker Desktop 版本和命令,其中之一的错误会弹出:
% docker pull alpine:3.7
Error response from daemon: Get "https://registry-1.docker.io/v2/": read tcp 192.168.65.4:55694->192.168.65.5:3128: read: connection reset by peer
% docker-compose up --build
// Some stuff
=> ERROR [container_name internal] load metadata for docker.io/library/alpine:3.7 0.0s
------
> [container_name internal] load metadata for docker.io/library/alpine:3.7:
------
failed to solve: rpc error: code = Unknown desc = failed to solve with frontend dockerfile.v0: failed to create LLB definition: failed to do request: Head "https://registry-1.docker.io/v2/library/alpine/manifests/3.7": unexpected EOF
% docker pull alpine:3.7
Error response from daemon: Get "https://registry-1.docker.io/v2/": unexpected EOF
apt-get install build-essential
",我没有具体的建议可以提供。 - David Mazeartifactory
有关,而是与Docker注册表有关,请查看此答案。 - x-yuri