修改Docke上传/下载并发线程数(解决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了
更多推荐
已为社区贡献2条内容
所有评论(0)