Podman exec 指南:容器内交互与调试全解析

【容器】Podman和常用命令 cgroup V2Linux内核功能允许用户限制普通用户容器可以使用的资源,如果使用cgroupV2启用了运行Podman的Linux发行版,则可能需要更改默认的OCI运行时。配置按此顺序读入,这些文件不是默认创建的,可以从/usr/share/containers或复制文件/etc/containers并进行修改。如果普通用户的身份从主机目录挂载到容器中,并在该目录中以根用户身份创建文件,则会看到它实际上是你的用户在主机上拥有的。容器与root用户一起运行,则root容器中的用户实际上就是主机上的用户。 阅读详情

以下是一份系统性、详尽的 podman exec 学习与使用指南,专为 Java 后端开发者(如您)在使用 Fedora Workstation 42 和 Podman 进行容器化开发时量身定制。内容涵盖定义、作用、参数详解、常见用法与实战建议,结合您熟悉的 Spring Boot 开发场景。


📘 Podman exec 指南:容器内交互与调试全解析

✅ 一、什么是 podman exec?

podman exec 是 Podman 提供的一个核心命令,用于在已经运行的容器内部执行一个新命令。它不启动新容器,而是在现有容器的命名空间(进程、网络、文件系统等)中“插入”一个进程。

📌 类比 Docker:podman exec 完全对标 docker exec,语法、功能几乎一致,是 Podman 作为 Docker 替代品的重要兼容特性。

✅ 二、核心作用(为什么需要它?)

在容器化开发中,你无法像操作本地机器那样直接访问容器内的文件、进程或服务。podman exec 是你“进入”容器的唯一合法通道,用于:

场景作用
调试应用查看 Spring Boot 应用的日志、检查配置文件、验证端口监听状态
排查问题进入容器内执行 curl localhost:8080/actuator/health 检查健康端点
交互式运维使用 bash 或 sh 进入容器 Shell,手动执行命令(如 ps aux, netstat, java -version)
数据检查查看 /app/logs/ 下的业务日志、数据库连接配置文件 application.yml
临时测试在容器内手动运行 mvn test 或 java -jar app.jar 验证环境一致性

💡 重要提示:生产环境应避免频繁使用 exec 进行调试,应通过日志收集(如 Loki + Grafana)、监控(Prometheus)和健康端点(Spring Actuator)实现可观测性。exec 更适合开发、测试、故障排查阶段。


✅ 三、语法结构与可选参数详解

podman exec [OPTIONS] CONTAINER COMMAND [ARG...]
🔧 常用参数详解(按重要性排序)
参数缩写作用说明
-i, --interactive-i保持 STDIN 打开使你可以在容器内输入命令(如 bash、mysql),交互式 Shell 必须加此参数
-t, --tty-t分配伪终端(TTY)为交互式命令提供终端模拟(如颜色、光标控制),与 -i 通常一起使用
-u, --user-u指定执行命令的用户可指定用户名或 UID,用于解决权限问题(如读取 /var/log)
-w, --workdir-w设置工作目录指定命令执行的初始目录,避免 cd /app 多余步骤
-e, --env-e设置环境变量临时覆盖容器内环境变量,如 -e SPRING_PROFILES_ACTIVE=dev
--privileged—以特权模式运行慎用! 赋予容器几乎宿主机权限,仅用于调试极端问题(如网络抓包)
--userns—指定用户命名空间高级用法,通常无需设置

✅ 最佳实践:
-it 是交互式调试的黄金组合,几乎每次进入 Shell 都必须使用:

podman exec -it <container> /bin/bash

✅ 四、常见用法与实战场景(Java 开发者专属)

🟢 1. 进入容器 Shell(最常用!)
podman exec -it my-spring-app /bin/bash
  • 作用:获得一个交互式 Bash Shell,可自由操作容器内文件系统。
  • 适用场景:
    • 查看 Spring Boot 应用的 application.yml:
      cat /app/src/main/resources/application.yml
      
    • 检查 Java 版本:
      java -version
      
    • 查看进程:
      ps aux | grep java
      
    • 检查端口监听:
      ss -tuln | grep 8080
      

💡 提示:若容器内无 bash,尝试 /bin/sh(Alpine 镜像常用):

podman exec -it my-spring-app /bin/sh

🟢 2. 查看运行中的 Java 进程和内存
podman exec -it my-spring-app jps -l
  • 作用:列出容器内所有 Java 进程(需容器内安装 jps,通常由 JDK 包含)。
  • 替代方案(若无 jps):
    podman exec -it my-spring-app ps aux | grep java
    

✅ 进阶:查看 JVM 启动参数(用于诊断内存泄漏):

podman exec -it my-spring-app cat /proc/$(pgrep java)/cmdline | tr '\0' ' '

🟢 3. 检查 Spring Boot Actuator 端点(开发调试利器)
podman exec -it my-spring-app curl -s http://localhost:8080/actuator/health
  • 作用:无需暴露端口到宿主机,直接在容器内测试健康检查。
  • 更完整示例:
    podman exec -it my-spring-app curl -s http://localhost:8080/actuator/info
    podman exec -it my-spring-app curl -s http://localhost:8080/actuator/metrics/http.server.requests
    

💡 建议:在 application.yml 中开启:

management:
  endpoints:
    web:
      exposure:
        include: health,info,metrics,prometheus

🟢 4. 查看日志文件(实时追踪)
podman exec -it my-spring-app tail -f /app/logs/application.log
  • 作用:实时追踪应用日志,无需在宿主机上挂载日志目录。
  • 配合 grep 过滤:
    podman exec -it my-spring-app tail -f /app/logs/application.log | grep "ERROR"
    

✅ 推荐实践:在 Dockerfile 中确保日志输出到 /app/logs/,便于统一管理。


🟢 5. 执行一次性命令(非交互式)
podman exec my-spring-app ls -la /app
  • 作用:在脚本中自动化检查容器状态,无需进入交互模式。
  • 典型用途:
    • 部署后验证文件是否正确复制
    • 检查数据库连接配置是否写入
    • 脚本中判断容器是否“就绪”

🟢 6. 以特定用户身份执行(解决权限问题)
podman exec -u root -it my-spring-app ls /root/.m2
  • 作用:当容器内默认用户为 1000(非 root),但你需要访问 root 目录或安装工具时使用。
  • 注意:podman 默认使用非 root 用户(安全最佳实践),除非你明确使用 --user root 构建镜像。

🟢 7. 设置环境变量临时调试
podman exec -e SPRING_PROFILES_ACTIVE=dev -it my-spring-app java -jar /app/app.jar
  • 作用:在不修改镜像或重启容器的前提下,临时切换 Spring 配置文件。
  • 注意:此方式不会持久化,重启容器后失效。仅用于快速验证。

💡 更优方案:使用 podman run 时通过 -e SPRING_PROFILES_ACTIVE=dev 设置,而非 exec 启动应用。


✅ 五、进阶技巧与最佳实践(Java 开发者专属)

技巧说明
使用 podman ps 找容器名podman ps -a 列出所有容器,确认你要操作的容器 ID 或 Name
避免 exec 启动应用不要用 exec java -jar app.jar 启动主应用!它会脱离 PID 1,导致容器退出。应使用 podman run 启动。
集成到 IDE在 IntelliJ IDEA / VSCode 中,可通过 Terminal 执行 podman exec -it <container> bash,实现“容器内终端”体验
与 podman logs 配合使用podman logs -f my-spring-app 查看主进程日志;podman exec 查看文件或执行命令,二者互补
使用 --workdir 简化路径podman exec -w /app -it my-spring-app ls -l 直接在 /app 目录下执行,无需 cd

✅ 六、常见错误与解决方案

错误信息原因解决方案
Error: no such container容器未运行或名称拼错使用 podman ps -a 确认容器状态和名称
OCI runtime exec failed: exec failed: container_linux.go:… no such file or directory容器内无 /bin/bash改用 /bin/sh,或安装 bash:podman exec -it container yum install -y bash(Fedora 镜像)
Permission denied没有权限访问文件加 -u root 或修改容器镜像中文件权限(建议在 Dockerfile 中修复)
standard_init_linux.go:228: exec user process caused: exec format error命令不是可执行文件检查路径是否正确,或使用 sh -c "command" 包裹

✅ 七、总结:Java 开发者 podman exec 使用速查表

任务命令
进入容器 Shellpodman exec -it <container> /bin/bash
查看 Java 进程podman exec <container> jps -l
查看应用日志podman exec <container> tail -f /app/logs/application.log
测试健康端点podman exec <container> curl http://localhost:8080/actuator/health
查看配置文件podman exec <container> cat /app/src/main/resources/application.yml
检查端口监听podman exec <container> ss -tuln | grep 8080
临时切换 Profilepodman exec -e SPRING_PROFILES_ACTIVE=dev <container> echo $SPRING_PROFILES_ACTIVE

✅ 八、安全与最佳实践提醒

  • ✅ 优先使用 podman logs 获取主进程日志,而非 exec tail。
  • ✅ 避免在生产环境使用 exec,应通过日志系统、监控、APM(如 SkyWalking)实现可观测性。
  • ✅ 容器镜像应包含调试工具:在开发镜像中加入 curl, net-tools, vim, jq 等工具,避免每次 exec 都要安装。
  • ✅ 使用多阶段构建:生产镜像精简,开发镜像包含调试工具。

📎 附:如何让容器“更易调试”?(Dockerfile 建议)

# 开发镜像(带调试工具)
FROM eclipse-temurin:21-jdk
WORKDIR /app
COPY target/myapp.jar app.jar

# 安装调试工具(仅开发镜像)
RUN dnf install -y curl net-tools vim jq && dnf clean all

# 启动命令
ENTRYPOINT ["java", "-jar", "/app/app.jar"]

然后构建时:

podman build -t myapp-dev .
podman run -d --name myapp-dev myapp-dev
podman exec -it myapp-dev bash  # ✅ 可直接使用 curl/vim

✅ 结语

podman exec 是你与容器化 Java 应用“对话”的桥梁。掌握它,意味着你能快速诊断 Spring Boot 服务为何启动失败、配置为何加载错误、端口为何不通。它不是“魔法”,而是系统性排查的基石。

建议你将本指南保存为本地文档,配合 podman ps、podman logs、podman port 等命令,构建属于你的容器调试工作流。

Podman构建可审计ML容器:安全、rootless与OCI标准实践 容器化是机器学习模型工程化的基础能力,其核心在于环境隔离、依赖固化与运行确定性。传统Docker依赖守护进程和root权限,导致审计困难、权限失控与构建不可复现;而Podman以无守护进程(daemonless)、原生rootless运行和严格OCI兼容为特征,天然适配ML交付对安全性、可追溯性与离线部署的刚性需求。通过Buildah实现模型权重层锚定、syft生成SBOM软件物料清单、cosign完成数字签名验证,可构建出符合等保三级、金融合规及边缘离线场景的生产级镜像。本文聚焦Podman在机器学习容器 阅读详情

相关推荐

Python RPA测试容器化实战:基于Podman与pytest的环境一致性解决方案

在软件开发和自动化测试领域,环境依赖管理是保障测试一致性和可重复性的核心挑战。容器化技术通过将应用及其所有依赖打包成标准化的镜像,从根本上解决了‘在我机器上能运行’的经典难题。其原理是利用操作系统级虚拟化,为应用提供隔离、一致的运行时环境,从而显著提升软件交付的可靠性与效率。对于涉及复杂桌面应用、浏览器或特定系统库的RPA(机器人流程自动化)测试而言,容器化价值尤为突出。通过将Python解释器、pytest测试框架、RPA脚本及所有系统级依赖封装进容器,可以实现跨开发、测试和生产环境的无缝迁移。本文以Po

coolmsn8786的博客 419

podman简介与安装与常用基础命令

podman简介与安装与常用基础命令

qq_45211528的博客 3341

Podman基础命令的6大实战场景解析

本文深入解析Podman基础命令在6大实战场景中的应用,包括镜像管理、容器生命周期、容器交互、文件传输、仓库交互和系统维护。通过具体案例和实用技巧,帮助开发者高效使用Podman进行容器化部署和运维,提升工作效率。特别适合需要掌握容器核心模块操作的运维人员和开发者。

weixin_29285605的博客 312

使用Podman执行高级容器管理,包括端口映射和持久存储

hello大家好😊

m0_60511809的博客 2998

Podman赋能MLOps:无守护进程的GPU模型容器化实践

容器化是机器学习工程化落地的核心环节,其本质是将模型、依赖与运行环境封装为可移植、可复现的标准化单元。基于OCI标准的容器运行时,通过镜像分层、命名空间隔离与cgroups资源控制实现环境一致性与安全边界。在MLOps场景中,传统Docker因daemon依赖、root权限耦合及GPU支持不透明,常导致开发-测试-生产环境不一致、CI构建失败和模型服务安全合规风险。Podman以daemonless架构、默认rootless模式和原生OCI兼容性,天然适配ML工作流——支持用户态构建、非特权GPU访问及Ku

weixin_34343308的博客 884

TPS563201DDCR电路翻车实录:从原理图到PCB,我踩过的5个坑及补救方法

本文详细记录了使用TPS563201DDCR电源芯片设计电路时遇到的5个常见问题及解决方案,包括EN引脚配置、BST电容选型、反馈网络设计、PCB布局优化以及散热处理。通过实际案例和数据分析,帮助工程师避免类似错误,提升电源模块的可靠性和效率。

weixin_42532938的博客 527

Docker/Podman使用入门---基础命令篇

文章目录1.帮助命令2.镜像命令3.容器命令 centos8 中一律使用podman工具代替了docker命令,具体用法基本一致 1.帮助命令 docker version # 显示docker的版本信息 docker info # 显示docker的系统信息,包括镜像和容器的数量 docker 命令xxx --help # 帮助命令 2.镜像命令 docker images 查看所有本地主机上的镜像 [root@AutoTestServer ~]#

Alien-Hu 8346

若依前后端分离版实战:MQTT集成保姆级教程(含MQTTX测试工具使用)

本文详细介绍了在若依前后端分离架构中集成MQTT协议的完整流程,包括环境搭建、核心配置、安全实践及性能优化。通过MQTTX测试工具的使用和实战代码示例,帮助开发者快速实现物联网场景下的实时通信功能,提升系统稳定性和效率。

weixin_30664051的博客 454

podman容器的使用

安装容器管理工具 yum -y module install container-tools podman --version podman search rhel7 语法: registry_name/user_name/image_name:tag registry_name是存储镜像的注册表的名称 user_name在用户命名空间必须唯一 tag标识镜像版本 登录注册表: podman login REGISTRY_NAME REGISTRY_NAME: registry.redhat.i

向阳-Y.的博客 3718

从FedAvg到实战:手把手教你用PyTorch复现联邦学习经典论文实验(MNIST/CIFAR-10)

本文详细介绍了如何使用PyTorch复现联邦学习经典算法FedAvg在MNIST和CIFAR-10数据集上的实验。从环境搭建、数据非IID划分到模型实现和参数聚合,手把手教你掌握联邦学习的核心技术与实战技巧,帮助开发者和研究人员快速实现隐私保护的分布式机器学习方案。

weixin_29053695的博客 252

5.3 磁悬浮轴承:基于有限元法的电磁场分析

摘要:本文系统阐述了有限元法在磁悬浮轴承电磁场分析中的应用。相较于等效磁路法和解析法,有限元法能精确处理复杂几何、材料非线性和动态效应。重点介绍了三维静磁场仿真(用于计算稳态磁场、电磁力和电感)和瞬态磁场仿真(用于分析动态过程和损耗)的关键设置与后处理方法。通过有限元分析可验证承载力、评估损耗分布并指导结构优化,形成"磁路设计-有限元验证-参数修正"的闭环设计流程,为磁轴承的精确设计和性能评估提供可靠依据。

技术工作者 1288

Podman 容器管理命令族全指南:podman container 子命令、双命令形态与源码实现解析

`podman container` 是 Podman 提供的容器管理命令族,它将容器的**创建、运行、停止、删除、检查、调试、数据交换与状态迁移**等三十余个操作统一收纳在一个命名空间下,与 `podman ps`、`podman run` 等顶层快捷命令共享同一套实现。本文以仓库中的 [podman-container.1.md](https://link.gitcode.com/i/caec

gitblog_00354的博客 401

小程序 video 控制器外观调整_Kessil 360X Tuna Sun无线控制器使用分享

之前分享了Kessil 360X Tuna Sun开箱记录,时间关系,没来得及使用WiFi Dongle无线控制器。昨晚抽空实操了一下,做个操作记录,希望对大家有参考Kessil无线模块操作指南官方视频英文教程配中文字幕,非常详尽语速较快,重点位置可以暂停操作点击边框调出视频工具条1、拆包取控制器,保存二维码Kessil WiFi Dongle包装打开包装就能看到Kessil无线控制模...

weixin_39759060的博客 4732

DeepTutor 容器化部署完全指南:从 Docker 到根less Podman 加固

本篇技术指南以仓库根目录的 [CONTAINERIZATION.md](https://link.gitcode.com/i/742f1c424530a285d7446f522a87be7d) 为骨架,系统讲解 DeepTutor 官方镜像(`ghcr.io/hkuds/deeptutor`)的三种容器化部署形态:开箱即用的 `docker run`、带 PocketBase 与沙箱 runner

gitblog_00197的博客 701

MOS管开关设计知识-(五种MOS管开关电路图方式)

在使用MOS管设计开关电源或者马达驱动电路的时候,大部分人都会考虑MOS的导通电阻,最大电压等,最大电流等,也有很多人仅仅考虑这些因素。这样的电路也许是可以工作的,但并不是优秀的,作为正式的产品设计也是不允许的。 下面是我对MOSFET及MOSFET驱动电路基础的一点总结,其中参考了一些资料,非全部原创。包括MOS管的介绍,特性,驱动以及应用电路。 1、MOS管种类和结构 MOSFET管是FET的...

树卡花 7万+

Linux7 挂载 nfs 远程目录

每天一个 DBA 小知识,助你更进一步!

LuciferLiu_DBA 1万+

90DaysOfDevOps 第 48 天:Docker 的替代方案——Podman、LXC、Containerd 与容器工具链全景解析

本篇文章对应 90DaysOfDevOps 2022 路线图容器章节的第 48 天,系统梳理 Docker 之外的主流容器技术替代方案。你将掌握 Podman 在 WSL2 上的完整安装与日常操作流程(镜像拉取、容器运行、进程查看与 attach 进入),理解 LXC 与 Docker 在隔离模型上的本质差异,了解 Containerd 作为 CNCF 顶级项目的定位,并认识 Gradle、Pac

gitblog_00540的博客 165

十二种嵌入式通信协议

嵌入式通信协议选型核心要点解析 在嵌入式系统开发中,通信协议选型直接影响项目成败。本文系统梳理了12种主流协议,从三个维度提供选型指南: 板级通信协议: I²C:双线制,适合传感器连接(温湿度、RTC等) SPI:高速全双工,适用于Flash存储、TFT屏等 UART:异步串行,常用于调试日志输出 总线通信协议: CAN:汽车电子首选,支持多主节点和硬件仲裁 LIN:低成本单线方案,适用于车窗控制等场景 RS485:工业自动化主力,最长传输距离1200米 Modbus:工业领域通用协议,支持RTU/TCP格

qq_37999850的博客 247

签名总过期?TrollStore 让 IPA 在 iOS 上免越狱永久安装

侧载到 iPhone 的 IPA 往往用一阵就变灰打不开。TrollStore 免越狱就能把 IPA 永久安装到 iOS 设备上,装完后的应用常驻系统,不再依赖签名维护。 ## 先说痛点:为什么侧载应用留不住 普通装法里,应用的生命周期挂在证书上。证书一失效,图标变灰、点不开,只能重新签名再装一遍,循环往复。 TrollStore 换了个思路:借助 iOS 内部的一个签名校验漏洞,把目标应用

gitblog_00436的博客 380

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

copyparty 容器化部署与镜像构建:Docker/Podman 实战全指南

copyparty 是一个把加速断点续传上传、去重、WebDAV、SFTP、FTP、媒体索引与缩略图等功能集于一身的便携式文件服务器,而本指南围绕其官方容器镜像 [scripts/docker/README.md](https://link.gitcode.com/i/4b7a0ebd706880f792e869d3e02bb9ad) 展开:从一条 `docker run` 快速启动、五个镜像版本

gitblog_00059的博客 606

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Podman Quadlet 命令完整指南:用 systemd 单元文件声明式管理容器、Pod、卷与网络

Podman Quadlet 是 Podman 提供的一套声明式容器管理方案:用户用 `.container`、`.volume`、`.network`、`.pod` 等单元文件描述想要的容器与资源,再由 Quadlet 将其翻译为 systemd 服务,从而在 Linux 上无需 Kubernetes 即可获得"声明式 + 开机自启 + 依赖编排"的体验。本文以 [podman-quadlet.

gitblog_00315的博客 584

Podman --dns-option 详解:为容器自定义 /etc/resolv.conf 的 DNS 选项

`--dns-option` 是 Podman 网络选项家族(与 `--dns`、`--dns-search` 并列)中的一员,用于在容器启动时向容器内的 `/etc/resolv.conf` 写入自定义 DNS 解析选项(resolver option),例如调整 `ndots`、`timeout`、`attempts`、`rotate` 等解析器行为。它适用于 `podman create`、

gitblog_00224的博客 874

Podman Quadlet 入门实战:用 systemd 声明式管理容器、卷与端口映射

本篇技术指南围绕 Podman Quadlet 的基础用法展开,通过 4 个可复制、可运行的渐进式示例,讲解如何用声明式的 `.container`、`.volume` 单位文件定义容器、创建命名卷、挂载卷与暴露端口,并由 systemd 生成器将这些文件翻译成可通过 `systemctl` 管理的服务。读完本文,你将掌握 Quadlet 的目录规范、开机自启写法、服务排查与调试方法,并理解其底层

gitblog_01061的博客 434

MLOps工程师为何该转向Podman:无守护进程与Rootless容器实践

容器技术是现代AI工程落地的核心基础设施,其本质是通过操作系统级隔离实现环境一致性与安全可控。Podman以无守护进程(daemonless)和开箱即用的rootless模式,重构了容器运行时的信任模型与资源边界——它不依赖长期运行的root级守护进程,而是基于Linux user namespace和fork-exec原语,让每个容器成为可审计、可限流、可溯源的普通进程。这种设计天然契合MLOps对权限最小化、本地-生产环境一致、CI/CD免sudo构建等刚性需求。结合OCI标准原生兼容与Pod语义支持,

weixin_33928137的博客 484

Podman Compose 根模式实战:零 root 权限下的安全容器编排

容器编排是现代开发环境的核心能力,其本质是通过声明式配置实现服务的自动化部署与协同。Podman Compose 以 daemonless 架构重构了这一过程,依托 user namespace、rootless 运行和 Pod 模型,在不依赖守护进程的前提下,保障容器进程归属开发者 UID、数据路径可审计、权限边界清晰可控。这种设计天然契合金融、医疗等强合规场景的技术治理要求,也适用于共享服务器、跳板机、SELinux 环境等受限基础设施。相比 Docker Compose,它牺牲了 Swarm/K8s

weixin_33851429的博客 405

Podman `-i/--interactive` 选项深度解析:从参数解析到 Conmon 的标准输入通道

Podman 的 `-i`(`--interactive`)选项是决定容器进程能否读取标准输入(stdin)的开关,它出现在 `podman create`、`podman exec`、`podman run`、`podman start` 四个命令中。本文基于仓库中的选项定义文档与源码实现,完整梳理该选项的语义、默认值、在本地模式与远程模式下的传播路径,以及 Conmon 建立 stdin 管道

gitblog_00501的博客 124
上一篇: Java 开发者进阶必学的 2025 最新中间件全图谱(系统性完整指南)
下一篇: Podman 国内镜像源(加速拉取)配置完整指南
龙茶清欢
博客等级 码龄7年 3720粉丝 375原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

龙茶清欢

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值