Docker exited容器清理全攻略:从手动命令到定时脚本一键搞定

第一章:Docker exited容器清理概述

在Docker日常使用过程中,频繁创建和停止容器会导致系统中积累大量处于exited状态的容器。这些容器虽不再运行,但仍保留元数据和文件系统层,占用磁盘空间并可能影响宿主机性能。因此,定期清理已退出的容器是维护Docker环境整洁与高效的重要操作。

清理exited容器的意义

  • 释放磁盘空间,避免存储资源浪费
  • 提升docker ps命令输出的可读性
  • 减少潜在的安全隐患和管理负担

识别已退出的容器

可通过以下命令查看所有已停止的容器:
# 列出所有容器(包括已退出)
docker ps -a

# 仅显示已退出容器的ID
docker ps -a --filter "status=exited" --quiet
其中,--filter "status=exited"用于筛选状态为exited的容器,--quiet参数则只输出容器ID,便于后续批量处理。

批量删除exited容器

使用管道组合命令可实现一键清理:
# 删除所有exited状态的容器
docker rm $(docker ps -a --filter "status=exited" --quiet)
该命令首先通过子命令获取所有exited容器的ID,再将其传递给docker rm进行删除。若无匹配容器,命令将安全退出而不报错。

常用过滤条件对照表

过滤条件说明
status=exited筛选已退出的容器
status=created筛选已创建但未启动的容器
status=running仅显示正在运行的容器
graph TD A[执行 docker ps -a] --> B{存在exited容器?} B -->|是| C[获取容器ID列表] B -->|否| D[无需清理] C --> E[执行 docker rm 删除] E --> F[清理完成]

第二章:exited容器的识别与分析

2.1 理解exited容器的产生机制

当容器主进程执行完毕或异常终止时,Docker 容器会进入 `exited` 状态。该状态并非错误,而是容器生命周期中的正常阶段。
常见触发场景
  • 主进程完成任务并退出(如批处理脚本执行结束)
  • 应用崩溃导致进程异常终止
  • 镜像启动命令配置错误,无法持续运行
查看容器退出状态码
docker inspect <container_id> | grep "State.ExitCode"
该命令输出容器退出状态码:0 表示正常退出,非 0 值表示异常,如 1 为通用错误,127 为命令未找到。
典型退出流程
启动容器 → 运行 ENTRYPOINT/CMD → 主进程结束 → 容器停止 → 状态标记为 exited

2.2 使用docker ps命令精准定位exited容器

在日常容器运维中,exited状态的容器常因异常退出或配置错误而被忽略。通过docker ps命令结合过滤参数,可快速识别这些“静默”故障源。
基础命令与状态过滤
docker ps -a --filter "status=exited"
该命令列出所有已停止的容器。-a显示全部容器,--filter "status=exited"精确匹配exited状态,避免手动翻查大量运行中实例。
组合筛选提升定位效率
可进一步结合名称或镜像过滤:
docker ps -a --filter "status=exited" --filter "name=web_"
此例筛选名称以web_开头且处于exited状态的容器,适用于微服务场景下的批量诊断。
  • 常见用途:日志排查、资源清理、重启策略验证
  • 进阶技巧:配合awk提取容器ID,实现一键删除:docker rm $(docker ps -q -f status=exited)

2.3 分析exited容器日志定位退出原因

在容器异常退出后,首要排查手段是查看其运行时日志。Docker 提供了简洁的命令接口来获取已退出容器的输出信息。
获取容器日志
使用以下命令查看容器的标准输出和标准错误流:
docker logs <container_id>
该命令将打印容器生命周期内的所有控制台输出。若容器因崩溃退出,通常可在末尾发现关键错误堆栈或 panic 信息。
结合状态码辅助诊断
通过查看退出码进一步缩小问题范围:
  • 0:正常退出(如主进程主动终止)
  • 1~127:应用级错误(如代码异常、配置缺失)
  • 128~255:信号终止(如 SIGSEGV=139, SIGKILL=137)
退出码常见原因
1应用程序内部错误
137被 SIGKILL 终止,常因内存超限
143收到 SIGTERM,可能为优雅关闭失败

2.4 利用过滤器高效筛选无用容器

在容器化环境中,随着服务迭代加快,大量停止或临时创建的容器会占用系统资源。通过 Docker 过滤器机制,可精准识别并清理无用容器。
基于状态过滤的清理命令
docker container ls -a --filter "status=exited" --filter "status=created"
该命令列出所有已退出或创建但未运行的容器。参数 --filter 支持链式条件,仅显示匹配状态的容器,避免手动筛选。
批量删除无用容器
结合过滤器与删除指令,实现高效清理:
docker container prune -f --filter "until=24h"
此命令自动删除超过 24 小时未运行的停止容器。-f 表示免确认,--filter "until=24h" 精确控制生命周期,防止误删近期容器。
  • 过滤器支持 status、label、name、until 等多种条件
  • 结合 shell 脚本可实现定时自动化清理

2.5 容器状态生命周期与资源占用评估

容器在其生命周期中会经历多个状态:CreatedRunningPausedStoppedDeleted。这些状态直接影响资源分配与回收策略。
核心状态转换流程
Created → Running ↔ Paused
Running → Stopped → Deleted
资源监控指标
指标说明
CPU Usage容器实际使用的CPU时间占比
Memory Limit内存上限,超限可能触发OOM
Network I/O网络吞吐量,影响服务响应延迟
典型资源查询命令
docker stats --no-stream container_name
该命令实时输出指定容器的CPU、内存、网络及存储使用情况。参数--no-stream表示仅获取一次快照,适用于自动化监控脚本中资源数据采集,避免持续输出干扰。

第三章:手动清理exited容器实践

3.1 单个exited容器的手动删除操作

在日常容器运维中,exited状态的容器会占用系统资源。手动清理此类容器是保障环境整洁的基础操作。
查看已退出的容器
使用以下命令列出所有已停止的容器:
docker ps -a --filter "status=exited"
该命令通过--filter "status=exited"仅显示exited状态的容器,便于定位待清理对象。
执行删除操作
获取容器ID后,执行删除:
docker rm <container_id>
例如:docker rm abc123def456将永久移除指定容器。若需强制删除,可添加-f参数。
批量清理辅助命令
虽然本节聚焦单个删除,但可通过组合命令提升效率:
  • docker ps -q -f status=exited:仅输出exited容器ID
  • 结合xargs实现管道删除

3.2 批量清理命令组合实战

在日常运维中,批量清理过期日志或临时文件是高频操作。合理组合Linux命令能显著提升效率。
常用命令组合模式
通过管道与命令串联,可实现精准筛选与安全删除:
find /var/log -name "*.log" -mtime +7 -print0 | xargs -0 rm -f
该命令查找/var/log下7天前的.log文件,使用-print0与-xargs -0确保文件名含空格也能安全处理。-mtime +7表示修改时间早于7天,避免误删近期数据。
多条件过滤与执行预览
为防止误操作,建议先预览待删除文件:
  • 使用-find ... -exec ls {} \;预览匹配结果
  • 加入-size选项限制文件大小,如-size +100M仅清理大文件
  • 结合-grep过滤特定关键字路径

3.3 清理过程中常见错误及应对策略

误删关键数据
在执行自动化清理脚本时,未正确设置过滤条件可能导致关键业务数据被误删。例如,使用模糊匹配删除日志文件时,可能误伤正在写入的活跃日志。
# 错误示例:无验证机制的删除命令
find /logs -name "*.log" -mtime +7 -exec rm {} \;

# 正确做法:先预览再执行
find /logs -name "*.log" -mtime +7 -print
建议先使用 -print 验证目标文件,确认无误后再替换为 -delete
资源锁定与进程冲突
清理正在被进程占用的文件会引发 I/O 错误。应通过 lsof 检查文件占用情况,或在维护窗口期执行操作。
  • 避免高峰时段运行清理任务
  • 添加重试机制应对临时锁定
  • 记录操作日志便于回溯

第四章:自动化清理方案设计与实现

4.1 编写Shell脚本实现定期清理

在运维自动化中,定期清理过期日志与临时文件是保障系统稳定的重要手段。通过编写Shell脚本结合定时任务,可高效完成该类操作。
脚本结构设计
一个典型的清理脚本需包含路径定义、查找条件及删除逻辑。使用find命令可精准定位需清理的文件。
#!/bin/bash
# 定义日志目录和保留天数
LOG_DIR="/var/log/app"
RETENTION_DAYS=7

# 查找并删除超过保留期限的文件
find $LOG_DIR -name "*.log" -mtime +$RETENTION_DAYS -exec rm -f {} \;
上述脚本中,-mtime +7表示修改时间在7天前的文件,-exec rm -f执行强制删除。脚本可通过chmod +x cleanup.sh赋予执行权限。
定时任务集成
使用cron实现周期性调用:
  • 执行crontab -e
  • 添加:0 2 * * * /path/to/cleanup.sh,表示每日凌晨2点运行

4.2 结合cron配置定时执行任务

在Linux系统中,cron是实现周期性任务调度的核心工具。通过编辑crontab文件,可精确控制脚本或命令的执行时间。
基本语法结构

# ┌───────────── 分钟 (0 - 59)
# │ ┌──────────── 小时 (0 - 23)
# │ │ ┌───────────── 日 (1 - 31)
# │ │ │ ┌───────────── 月 (1 - 12)
# │ │ │ │ ┌──────────── 星期几 (0 - 6)
# │ │ │ │ │
# │ │ │ │ │
# * * * * * 要执行的命令
上述格式定义了五个时间字段,依次为分钟、小时、日、月和星期。例如:0 2 * * * /backup.sh表示每天凌晨2点执行备份脚本。
实际应用场景
  • 每日零点同步数据库
  • 每小时清理临时文件
  • 每周一生成报表
结合Shell脚本与cron,能高效实现自动化运维任务,提升系统稳定性与响应效率。

4.3 脚本日志记录与执行结果监控

在自动化运维中,脚本的可追溯性与执行状态透明化至关重要。通过合理的日志记录与结果监控机制,能够快速定位问题并保障系统稳定性。
日志级别与输出规范
建议使用标准化日志级别(INFO、WARN、ERROR)区分事件严重程度,并输出至独立日志文件:
#!/bin/bash
LOG_FILE="/var/log/deploy.log"
echo "$(date '+%Y-%m-%d %H:%M:%S') [INFO] 开始执行部署任务" >> $LOG_FILE
该脚本片段将时间戳与日志级别结合写入日志文件,便于后期按时间排序分析。
执行结果捕获与处理
通过捕获退出码判断脚本执行状态:
  • 0:执行成功
  • 非0:执行失败,需触发告警或回滚
if [ $? -ne 0 ]; then
  echo "$(date) [ERROR] 脚本执行失败" >> $LOG_FILE
  exit 1
fi
此逻辑确保异常被记录并及时响应。

4.4 安全防护:防止误删运行中容器

在容器运维过程中,误删正在运行的关键服务容器可能导致业务中断。为避免此类事故,Docker 提供了多种机制增强操作安全性。
启用容器删除保护
可通过启动容器时添加 --rm 的反向控制逻辑,结合健康检查机制实现保护。更推荐使用编排工具如 Kubernetes 的 Pod 删除确认策略。
docker run -d --name critical-service \
  --label "protect=true" \
  nginx:alpine
上述命令通过标签标记关键容器,便于后续策略识别。标签可用于脚本化保护逻辑,防止被自动清理流程误捕获。
构建安全删除检查脚本
  • 检查目标容器的运行状态(running 状态禁止删除)
  • 验证是否存在保护标签(如 protect=true
  • 执行前需手动确认或通过审批流程

第五章:总结与最佳实践建议

构建高可用微服务架构的通信策略
在分布式系统中,服务间通信的稳定性直接影响整体可用性。采用 gRPC 作为核心通信协议时,应启用双向流与超时控制,避免因单点延迟引发雪崩。

// 设置客户端调用超时时间为1秒
ctx, cancel := context.WithTimeout(context.Background(), time.Second)
defer cancel()

response, err := client.ProcessRequest(ctx, &Request{Data: "example"})
if err != nil {
    log.Error("gRPC call failed: %v", err)
    // 触发熔断逻辑或降级处理
}
配置管理的最佳实践
使用集中式配置中心(如 Consul 或 Apollo)统一管理环境变量。以下为配置热更新的关键步骤:
  1. 监听配置中心变更事件
  2. 验证新配置格式有效性
  3. 原子化替换运行时配置
  4. 记录变更日志并触发健康检查
监控与告警体系设计
完整的可观测性需覆盖指标、日志与链路追踪。推荐组合 Prometheus + Loki + Tempo,并通过 Grafana 统一展示。
组件用途采样频率
Prometheus采集CPU、内存、QPS每15秒
Loki结构化日志聚合实时写入
Tempo分布式追踪ID关联按请求触发
安全加固实施要点
生产环境必须启用 mTLS 双向认证。Kubernetes 中可通过 Istio 自动注入 Sidecar 实现零信任网络。同时限制服务账号权限,遵循最小权限原则。
已经博主授权,源码转载自 https://pan.quark.cn/s/e577710b7191 ### 解决Win10系统中Word文件图标显示不正常问题 #### 问题描述 在Windows 10操作系统中,部分用户遇到Word文档图标呈现非正常状态的问题。具体表现为:本应展示为Microsoft Word图标的DOC或DOCX文件,在系统中却呈现为常规的文本文件图标。这种现象不仅降低了用户的视觉体验,还可能引发一定的操作不便。 #### 解决方案 ##### 方法一:借助注册表编辑来纠正图标显示异常 1. **进行注册表备份**:为了保障系统的稳定性,在开展任何注册表修改之前,必须对注册表进行备份。可以通过“导出”功能来达成备份目的。 - 启动“运行”对话框(快捷键:`Windows + R`),键入`regedit`,随后按回车键进入注册表编辑界面。 - 在注册表编辑界面中,找到菜单栏里的“文件”选项,点击后选择“导出”,依照提示完成注册表备份。 2. **移除相关注册表项**: - 在`HKEY_CLASSES_ROOT`下,删除以下四个注册表项: - `.doc` - `.docx` - `Word.Document.8` - `Word.Document.12` - 在`HKEY_LOCAL_MACHINE\SOFTWARE\Classes`下,同样移除上述四个注册表项。 3. **重新启动计算机**:执行完上述步骤后,重新启动计算机以使修改生效。 #### 方法二:通过调整文件关联来纠正图标显示异常 如果第一种方法未能解决难题,则可以尝试调整文件的关联方式,具体步骤如下: 1. **移除文件关联**: - 在`HKEY_CLASSES_ROOT`下删除`....
源码直接下载地址: https://pan.quark.cn/s/a4b39357ea24 台达VFD037E43A变频器使用说明书包含了产品的基础安装、操作及维护等方面的全面信息,以下为其知识要点具体阐述: 1. 安全操作注意事项:在操作台达VFD037E43A变频器之前,说明书着重指出必须研读安全信息以保障操作人员与设备的双重安全。使用前应核实电源已切断,防止触碰带电线路,同时对内部电路板的静电防护措施也做了规定。此外,说明书还明确禁止非专业人员擅自改装变频器。 2. 接地规范:说明书说明了230V和460V系列变频器分别遵循第三类接地和特殊接地标准,从而确保了安全接地的合规性。 3. 安装与连接:说明书详尽说明了产品装置、搬运、接线方法、主回路端子及控制回路端子等环节,为用户正确配置和连接变频器提供了指导。 4. 零件选择:说明书内含零件选购参考,协助用户依据实际需求挑选适配的零件。 5. 参数调节:说明书中的“参数索引”及“参数深入解释”部分指导用户如何设定和调整变频器的运行参数。 6. 应用案例:在“成功实施案例”部分,说明书以实例形式向用户展示变频器在不同工作场景下的应用技巧。 7. 问题诊断:说明书提供了“警示代码解析”和“错误代码解析”,帮助用户识别变频器的常见故障并进行排除。 8. 通讯方式:说明书介绍了“CANopen通讯基础”和“BACnet应用指南及流程”,使用户能够掌握如何通过这些通讯方式将变频器融入工业自动化系统。 9. 特殊功能介绍:说明书还收录了“可编程逻辑控制器应用”和“PT100操作指南”,阐述了变频器的可编程逻辑控制器特性及温度传感器操作方法。 10. 网站与升级:说明书指出产品资料如有变动可通过台达电子工业自动化类产品的官方网...
代码下载地址: https://pan.quark.cn/s/a4b39357ea24 ST-Link V2是一种被普遍采用用于调试和编程的工具,其核心应用对象是STMicroelectronics(简称ST)所推出的STM32与STM8微控制器系列。在产品的设计与开发阶段,ST-Link V2占据着不可或缺的地位,它赋予工程师执行代码传输、程序调试以及硬件检测的能力。为了运用该设备,进行ST-Link V2驱动程序的安装是必要的前置工作。针对不同操作系统的环境,驱动程序的安装方式需做出相应的适配。举例来说,若在Windows XP环境下运作,应选择安装"ST-LINKV2USBdriver1.04forWindows7,VistaandXP.zip"这一驱动包;而对于Windows 7或Windows 8系统,则需安装"ST-LINKV2USBdriver1.0forWindows7andWindows8,32and64bits.zip"版本。整个安装流程一般包含以下环节:首先对下载的文件进行解压缩处理,随后双击运行安装文件,依照提示点击"Next"与"Install"按钮,最后通过点击"Finish"来完成安装操作。一旦驱动安装成功,用户应能在设备管理器中查找到ST-Link V2仿真器,且该设备的电源指示灯应呈现持续点亮的状态。关于软件的安装,针对STM32微控制器配备的软件工具是STM32 ST-LINK Utility,而STM8微控制器则采用ST Visual Develop(简称STVD)环境中的ST Visual Programmer(简称STVP)。安装这些软件时,通常需要启动安装程序,并遵循安装向导的步骤来达成整个安装任务。在开展STM32的...
代码转载自:https://pan.quark.cn/s/8ce4326d996e 对于在 CentOS 7 系统中修改网卡配置文件后无法使设置生效的情况,经过实践验证,可以通过使用 nmcli 命令来进行调整。完成修改之后,需要重新启动虚拟机以使更改生效,这样操作流程即告完成。如果设置仍然无法生效,则表明虚拟机在启动过程中所获取的 IP 地址配置并非针对 eth0,此时可以对其它网卡的配置文件进行修改或将其移除。在 CentOS 7 系统中,网络配置的管理机制与早期版本存在差异,主要体现为采用了 Network Manager 服务来负责网络接口的管理。在某些情形下,尽管修改了 `/etc/sysconfig/network-scripts` 目录下的 `ifcfg-eth0` 文件,但网络配置却未能即时生效。此类问题的发生通常源于 CentOS 7 采用了不同于以往的配置读取方法。接下来将具体阐述如何借助 nmcli 命令来处理这一挑战。 以 root 用户身份登录系统并打开终端界面。nmcli 是 Network Manager 提供的命令行界面工具,它支持在命令行环境下执行网络连接的建立、编辑、查询及管理任务。针对修改 eth0 网卡配置的需求,可以遵循以下步骤进行操作: 1. 导航至 `/etc/sysconfig/network-scripts` 目录: ``` cd /etc/sysconfig/network-scripts ``` 2. 检查该目录内是否存在 `ifcfg-eth0.bak` 文件,该备份文件可能是先前调整配置时遗留下来的,若存在可能造成冲突。若发现该文件,可以选择将其删除: ``` [root@localhost netw...
源码下载地址: https://pan.quark.cn/s/a4b39357ea24 谷歌公司设计了一款无费用且具备开源特性的网络浏览器,名为Chrome,因其卓越的速度、稳定性和安全性而广受赞誉。该浏览器运用了前沿的Web渲染引擎Blink以及JavaScript引擎V8,旨在保障网页载入与脚本运行的卓越效能。为应对无网络环境下的Chrome安装需求,特别准备了离线安装包。此压缩文件内含32位与64位两种规格的Chrome浏览器离线安装方案,具体文件名分别为"chromedev_x64-v68.0.3423.2.exe"与"chromedev_x86-v68.0.3423.2.exe"。在文件命名中,"x64"标识64位版本,适用于64位操作系统平台,而"x86"则对应32位版本,适配32位操作系统。文件名中的"v68.0.3423.2"代表Chrome的一个特定版本号,各版本可能涵盖安全补丁、性能改进或新增功能。与32位Chrome相比,64位版本具备如下长处:能够处理更多内存容量,从而提升多任务作业能力;针对现代硬件的优化使其运行更为迅猛;64位版本更具备高级别的安全防护,能更周全地抵御恶意软件的侵袭。尽管如此,32位版本对于仍在使用32位操作系统的用户,或是在系统资源需求不高的场景下,依然适用。在部署Chrome浏览器时,用户需依据其个人计算机的操作系统平台,挑选匹配的版本进行安装。通过双击相应的.exe文件,安装流程将自动启动,一般包含接受使用许可、确定安装路径及构建桌面快捷方式等环节。若在安装阶段遭遇难题,可参照提示信息或联系技术支援获取协助,同时该压缩文件发布者亦表明欢迎用户以留言形式反映问题。Chrome浏览器的主要特质涵盖:直观的用户界面设计...
源码直接下载地址: https://pan.quark.cn/s/65a25f5da9d4 ### 昆仑通态MCGS脚本函数详述 #### 一、运行环境操作函数概述 昆仑通态MCGS作为在工业自动化领域内广泛应用的组态软件,提供了丰富的脚本函数工具,用以辅助用户达成复杂的控制逻辑构建和数据处理任务。此类脚本函数能够应用于运行环境的多种操作,涵盖了诸如调整循环策略的时间间隔、操控窗口的开启与闭合状态、调控策略的启动与停止等多个方面。以下将具体阐释部分核心的运行环境操作函数。 #### 二、函数详解 ##### 1. **!ChangeLoopStgy(StgyName, n)** - **函数作用**:此函数用于调整特定循环策略的循环周期。 - **返回值**:数值型数据。当调用成功时返回0,若调用未成功则返回非零值。 - **参数**: - `StgyName`:指代循环策略的名称标识。 - `n`:新的循环时间长度,单位为毫秒。 - **实例**:`!ChangeLoopStgy("报警策略", 5000)` 将“报警策略”的循环周期设置为5秒。 ##### 2. **!CloseAllWindow(WndName)** - **函数作用**:该函数执行关闭所有窗口的操作。若指定了特定的窗口名称`WndName`,则仅保留该窗口而关闭其他所有窗口;若无指定或`WndName`为空字符串,则执行关闭所有窗口的操作。 - **返回值**:数值型数据。调用成功时返回0,失败时返回非零值。 - **参数**: - `WndName`:用户窗口的名称标识。 - **实例**:`!CloseAllWindow("工况图")` 将关闭除“工况图”窗口外的所有其他窗口。 ####...
源码直接下载地址: https://pan.quark.cn/s/eaceca1336c7 在深入分析“电信超级管理员账号密码”这一议题时,我们必须首先识别几个核心要素:保障安全、控制权限以及确保网络的有效运行。在电信领域,特别是提供固定电话和宽带服务的公司,往往为系统维护人员配备超级管理员账号,以便对网络设备进行设置、诊断以及日常的维护任务。然而,若将超级管理员账号密码公之于众或处理不当,无论是以文件形式存储还是通过其他途径,都将构成重大的信息安全隐患。 ### 安全隐患 电信网络作为国家基础建设的重要组成部分,其安全性能具有极高的重要性。超级管理员账号具备对网络核心设备的绝对控制能力,涵盖路由器、交换机、服务器等设备。一旦这些凭证被非法获取,恶意行为者能够利用它们从事以下行为: 1. **非授权进入**:擅自访问网络资源,盗取关键信息。 2. **网络损害**:更改网络设置,引发服务中断。 3. **恶意程序部署**:在重要设备上安装恶意软件,逐步扩散至整个网络。 4. **数据修改**:更改用户信息,例如个人隐私、财务信息等。 5. **监控与窃听**:对网络数据流进行监视,获取通信内容。 ### 权限分配 正确的权限分配策略是预防此类安全事件的关键所在。超级管理员账号应仅由少数经过严格筛选和培训的技术专家使用,并且应当有以下措施保障安全: 1. **多重验证机制**:除了密码外,还应结合物理设备、生物特征等方式提升验证难度。 2. **最小化权限原则**:限定超级管理员的访问范围,仅允许执行必要的操作。 3. **记录与追踪**:记录所有登录和操作行为,便于事后追溯和分析。 4. **定期更新**:定期更换超级管理员密码,减少长期不变带来的风险。 ### 网...
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值