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

如何不新建容器扩容Docker容器磁盘空间?容器已无法启动

解决Docker容器无法启动及现有容器磁盘限额调整问题

先帮你拆解两个核心问题:容器无法启动的修复,以及不新建容器前提下提升磁盘限额的方法,一步步来:


一、先解决容器无法运行的问题

你遇到的Container ... is not running报错,大概率是容器启动后前台进程退出导致的(你用/bin/bash作为启动命令,detach后如果bash没有持续运行的话,容器会自动停止)。试试下面的步骤:

  1. 尝试直接启动容器
    先试试启动容器,看是否能正常运行:

    docker start Test_Container
    

    如果启动成功,直接用docker exec -it Test_Container /bin/bash就能进入了。

  2. 如果启动失败,排查原因
    查看容器日志定位问题:

    docker logs Test_Container
    

    常见原因比如:挂载的host_dir不存在/权限不足、容器内依赖缺失等。根据日志提示修复后再尝试启动。

  3. 修改容器启动命令(避免后续自动停止)
    如果是因为/bin/bash退出导致容器停止,可以修改容器的启动命令,让它保持后台运行:

    • 先获取容器ID:
      docker ps -a | grep Test_Container
      
    • 停止Docker服务(必须停,否则配置文件被锁定):
      sudo systemctl stop docker
      
    • 找到容器配置目录(路径一般为/var/lib/docker/containers/<你的容器ID>),备份config.v2.json:
      sudo cp /var/lib/docker/containers/<容器ID>/config.v2.json /var/lib/docker/containers/<容器ID>/config.v2.json.bak
      
    • 编辑config.v2.json,找到Cmd字段,把原来的["/bin/bash"]改成:
      "Cmd": ["tail", "-f", "/dev/null"]
      
    • 重启Docker并启动容器:
      sudo systemctl start docker
      docker start Test_Container
      

    这时候容器会保持运行状态,你就能正常exec进入了。


二、不新建容器,提升磁盘限额

Docker的磁盘限额针对容器的可写层(挂载的主机目录-v host_dir:docker_local_dir不受此限额限制,用的是主机磁盘空间)。主流存储驱动(overlay2)下,可通过修改容器配置文件实现:

前提:先确认你的Docker存储驱动

执行命令查看:

docker info | grep "Storage Driver"

下面的方法针对主流的overlay2驱动,如果是devicemapper,操作逻辑类似,但需要额外调整thin pool配置(现在devicemapper已不推荐使用)。

具体步骤:

  1. 停止容器和Docker服务

    docker stop Test_Container
    sudo systemctl stop docker
    
  2. 找到容器配置文件并备份
    同样用容器ID找到配置目录,备份config.v2.json(一定要备份,避免改错):

    sudo cp /var/lib/docker/containers/<容器ID>/config.v2.json /var/lib/docker/containers/<容器ID>/config.v2.json.size.bak
    
  3. 修改磁盘限额
    编辑config.v2.json,找到SizeLimit字段:

    • 如果已有该字段,修改为你想要的字节数(比如100GB = 100 * 1024^3 = 107374182400)
    • 如果没有,在合适的位置添加该字段(比如在Hostname字段附近):
      "SizeLimit": 107374182400,
      

    注意JSON格式要正确,逗号不能少(最后一个字段不用加逗号)。

  4. 重启Docker并启动容器

    sudo systemctl start docker
    docker start Test_Container
    
  5. 验证限额是否生效

    • 查看容器配置:
      docker inspect Test_Container | grep SizeLimit
      
    • 进入容器后用df -h查看可写层的磁盘空间,确认限额已更新。

重要提醒

直接修改容器配置文件属于非官方操作,存在一定风险(比如Docker版本更新可能导致配置格式变化)。如果后续出现问题,可通过备份的配置文件恢复。

如果你的磁盘占用主要来自挂载的主机目录,提升容器限额是没用的,需要清理主机磁盘空间或者扩展主机存储。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 08:24:49