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

基于Linux容器的Azure App Service:如何清理旧部署?

问题解决思路:Azure App Service Linux容器部署空间不足

核心原因说明

  • Azure App Service Linux的容器镜像不占用网站文件系统配额,而是使用主机本地的临时容器存储区域,这个空间和你看到的250GB网站存储配额相互独立。多次部署后旧镜像未自动清理,会填满该区域,导致新镜像解压后空间不足启动失败。
  • Kudu SSH环境是沙箱限制,本身就没有docker命令,且禁止root级别的工具安装,这是平台安全限制,并非你遗漏了配置。

无需Docker命令的临时清理方法

登录App Service的高级工具(Kudu),进入Debug console > SSH,执行以下命令清理冗余容器文件:

# 停止运行中的容器进程
sudo killall docker-containerd-shim
# 删除旧镜像的存储层文件
rm -rf /var/lib/docker/image/overlay2/layerdb/mounts/*
rm -rf /var/lib/docker/overlay2/*

注意:执行前确保当前无业务运行,避免影响线上服务。

长期优化配置

  • 开启自动镜像清理:在App Service的「配置-应用设置」中添加WEBSITE_DOCKER_CLEANUP_ENABLED,值设为true。该配置会让平台在每次部署新镜像后自动清理无用的旧镜像和容器。
  • 优化镜像体积:采用Alpine基础镜像、多阶段构建、清理构建依赖等方式缩小Docker镜像大小,从根源减少空间占用。
  • 调整部署流程:在Azure DevOps部署任务前添加前置步骤,先重启App Service释放空间,再部署新镜像。示例Azure CLI命令:
    az webapp restart --name <你的App Service名称> --resource-group <资源组名称>
    

额外提示

如果使用的是**隔离层(Isolated)**App Service计划,可联系Azure支持调整主机容器存储配额;基础/标准层无此权限,只能通过上述方案优化。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 06:55:15