docker build命令持续运行且无限占用磁盘空间问题求助
问题根因
卡顿时根本还没跑你Dockerfile里的FROM、RUN指令。Sending build context to Docker daemon是构建的前置步骤:Docker会把你命令最后指定的上下文路径(这里的.就是你执行命令时所在的当前目录)下的所有文件递归打包,传给后台的Docker守护进程。
只要这个路径里有大量无关大文件——比如误在根目录、家目录、存了几十G数据集/日志/依赖缓存的目录下执行build——就会出现打包体积不停涨、进程卡很久不动的情况,和你写的那两行Dockerfile没有关系,不用改Dockerfile内容。
修复步骤
- 换个干净的构建目录:专门建个单独的文件夹放Dockerfile和构建必须的文件(比如要拷进镜像的代码、配置),别在塞满杂七杂八文件的目录(比如下载目录、桌面、磁盘根目录)直接跑build命令。
- 加
.dockerignore过滤无关文件:在Dockerfile同级目录建.dockerignore文件,写法和.gitignore完全一样,把构建用不上的目录、文件全列进去排除,常用参考配置如下:
# 排除版本控制目录 .git .gitignore # 排除本地依赖缓存 node_modules venv __pycache__ target/ # 排除大体积非构建必需内容 *.log data/ downloads/ tmp/ # 排除压缩包、备份文件 *.tar *.zip *.bak
- 排查隐藏的大文件:如果前面两步做了还是卡,在build目录执行
du -sh .[!.]* * | sort -hr,会按体积从大到小列出当前目录所有文件(包括隐藏文件),找到占空间异常的无关文件挪走或者删掉就行。
内容的提问来源于stack exchange,提问作者rebel_roar
相关产品推荐
相关产品推荐

