目錄
- 方法一:修改配置文件
- 方法二:使用dockerd命令修改參數(shù)
下載或上傳鏡像時,有可能因為網(wǎng)絡(luò)問題導(dǎo)致報出docker: unexpected EOF.的錯誤,這時候可以考慮通過修改上傳/下載并發(fā)線程數(shù)來解決
方法一:修改配置文件
sudo vim /etc/docker/daemon.json
這是示例(一個是修改上傳數(shù),一個是修改下載數(shù),根據(jù)需要添加進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命令修改參數(shù)
這種方法適用于手動啟動docker daemon并進行調(diào)試,如果是平時正常使用,沒有特殊要求,方法一會更方便、更適合
輸入命令可以查看dockerd支持的參數(shù)
dockerd --help
在輸出中可以找到默認下載數(shù)為3,上傳數(shù)為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服務(wù)
sudo systemctl stop docker
docker socket可停可不停
sudo systemctl stop docker.socket
現(xiàn)在修改下載數(shù)
dockerd --max-concurrent-downloads 1
運行后,不要按ctrl+c停止,因為停掉之后就等于docker停了,所以要在新的窗口中運行docker pull下載鏡像,就能看到下載時一次只下載一個layer了