You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker构建传输构建上下文时整机崩溃问题求助

Docker构建上下文传输阶段整机崩溃排查方案

问题描述

Ubuntu 22.04.1 LTS环境下,Docker首次镜像构建可正常完成,再次启动构建时整机完全锁死,必须重启恢复。崩溃固定发生在构建上下文传输阶段,传输量达到150-170MB时触发,无相关错误日志留存。

排查与解决步骤

1. 缩小构建上下文范围

  • 检查当前目录的.dockerignore文件,将非必要文件/目录(如node_modules、缓存目录、日志文件、大型静态资源)加入忽略列表,减少上下文传输体积,测试是否仍会崩溃。
  • 手动指定更小的目录作为构建上下文,例如执行docker build -t myimage ./target-dir,验证问题是否与上下文大小或内容相关。

2. 调整Cgroup配置

当前系统使用Cgroup v2 + systemd驱动,存在资源管控异常的可能:

  • 编辑/etc/docker/daemon.json,添加配置:
    {"exec-opts": ["native.cgroupdriver=cgroupfs"]}
    
  • 重启Docker服务:systemctl restart docker,再次测试构建流程。

3. 检查磁盘与文件系统状态

  • 查看Docker根目录分区可用空间:df -h /var/lib/docker,确保剩余空间充足。
  • 清理Docker无用资源:docker system prune -af,释放磁盘空间,避免构建时IO过载。
  • 只读检查extfs文件系统完整性:e2fsck -n /dev/[你的磁盘分区](需替换为实际设备名,如/dev/sda2),排查文件系统错误。

4. 升级Docker与内核版本

  • 当前Docker版本(20.10.18)较旧,升级至最新稳定版:
    sudo apt remove docker docker-engine docker.io containerd runc
    sudo apt update
    sudo apt install docker-ce docker-ce-cli containerd.io
    
  • 升级内核至同系列最新补丁版:
    sudo apt update && sudo apt upgrade linux-image-generic
    
    重启系统后测试构建。

5. 开启Docker调试模式捕获日志

  • 编辑/etc/docker/daemon.json,添加{"debug": true},重启Docker服务。
  • 构建时实时查看Docker日志:journalctl -u docker.service -f,尝试捕获崩溃前的异常输出。

6. 排查硬件故障

  • 运行内存测试:安装memtester后执行memtester 10G 5,检查内存硬件是否存在读写故障。
  • 查看磁盘SMART健康信息:smartctl -a /dev/[你的磁盘设备],排查磁盘坏道或IO异常。

内容的提问来源于stack exchange,提问作者HeroOnSocks

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 21:01:54