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

如何扩容运行容器镜像的Google Cloud Compute实例Docker分区

你遇到的Docker分区容量不足的根本原因是GCE容器优化OS默认启动盘仅为10GB,实际分配给用户数据和Docker存储的stateful分区仅5.7GB,系统自动扩容的前提是先手动扩大底层云启动盘的容量,具体扩容方案如下:

解决方案

方案1:新实例部署(推荐生产环境重构时使用)

创建实例时直接指定启动盘容量,避免后续扩容操作,只需在原有创建命令中新增两个参数即可:

  • 新增--boot-disk-size=50GB参数,容量可根据业务需求调整,建议至少预留20GB以上空间
  • 可选新增--boot-disk-type=pd-balanced参数调整磁盘性能

修改后的创建命令参考:

gcloud compute instances create-with-container $INSTANCE_NAME \
    --zone=europe-north1-a \
    --container-image gcr.io/my-project/my-image:latest \
    --container-mount-host-path mount-path=/var/www/html,host-path=/var/www/html,mode=rw \
    --machine-type="$MACHINE_TYPE" \
    --boot-disk-size=50GB \
    --boot-disk-type=pd-balanced

该方式创建的实例启动后会自动完成分区扩容,无需额外手动操作。

方案2:现有生产实例在线扩容(无需重建实例,无业务中断)

共3步,全程不需要停止实例或运行业务的容器:

  1. 扩容实例对应的云启动盘容量
    可以直接通过gcloud命令操作,示例为扩容到50GB:
gcloud compute disks resize $INSTANCE_NAME --zone europe-north1-a --size 50GB

执行后等待1-2分钟让磁盘扩容生效。
2. 登录实例触发系统分区自动扩容
GCE容器优化OS自带根分区扩容工具,直接执行以下命令:

sudo rootfs-expand

执行后等待数秒即可完成分区扩展。
3. 验证扩容结果
执行df -h查看分区容量,此时/dev/sda1和对应的Docker overlay分区容量会同步更新为扩容后的大小。

注意事项
  • 若业务需要长期存储大量网站数据,建议单独创建持久化磁盘挂载到实例后再映射到容器内,实现数据和系统盘分离,后续扩容数据盘不会影响系统运行,也可避免系统盘占满导致的业务故障。
  • 可配置定时任务定期执行docker system prune -af清理冗余的镜像、容器、卷资源,避免无效资源占用磁盘空间。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 10:27:05