这篇文章主要讲解了“如何解决docker: unexpected EOF.错误问题”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何解决docker: unexpected EOF.错误问题”吧!
下载或上传镜像时,有可能因为网络问题导致报出docker: unexpected EOF.的错误,这时候可以考虑通过修改上传/下载并发线程数来解决
方法一:修改配置文件
sudo vim /etc/docker/daemon.json
这是示例(一个是修改上传数,一个是修改下载数,根据需要添加进daemon.json,如果不添加就是默认值,默认值查看方法见方法二)
{ "max-concurrent-uploads": 1, "max-concurrent-downloads": 1}
因为我上传没问题,而下载会碰到EOF的报错,因此只添加"max-concurrent-downloads":1这句,这是我的配置文件(有runtimes是因为安装了nvidia-docker)
{ "runtimes": { "nvidia": { "path": "nvidia-container-runtime", "runtimeArgs": [] } }, "max-concurrent-downloads": 1}
接下来重启docker
sudo systemctl daemon-reload && sudo systemctl restart docker
这样就成功修改了
方法二:使用dockerd命令修改参数
这种方法适用于手动启动docker daemon并进行调试,如果是平时正常使用,没有特殊要求,方法一会更方便、更适合
输入命令可以查看dockerd支持的参数
dockerd --help
在输出中可以找到默认下载数为3,上传数为5
--max-concurrent-downloads int Set the max concurrent downloads for each pull (default 3)--max-concurrent-uploads int Set the max concurrent uploads for each push (default 5)
先停掉原先的docker服务
sudo systemctl stop docker
docker socket可停可不停
sudo systemctl stop docker.socket
现在修改下载数
dockerd --max-concurrent-downloads 1
运行后,不要按ctrl+c停止,因为停掉之后就等于docker停了,所以要在新的窗口中运行docker pull下载镜像,就能看到下载时一次只下载一个layer了。
感谢各位的阅读,以上就是“如何解决docker: unexpected EOF.错误问题”的内容了,经过本文的学习后,相信大家对如何解决docker: unexpected EOF.错误问题这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!