Docker入门教程(一)

ComfyUI-Impact-Subpack插件安装避坑指南:为什么你的UltralyticsDetectorProvider节点还是找不到? 本文深入解析了ComfyUI-Impact-Subpack插件的安装与排障问题,特别是针对UltralyticsDetectorProvider节点缺失的常见问题提供了详细的解决方案。从底层机制到高阶应用,涵盖了手动安装、模型配置、性能优化等关键步骤,帮助用户彻底解决插件依赖关系断裂问题。 阅读详情

一、Docker是什么
Docker使用Google公司推出的Go语言进行开发实现,基于lInux内核的cgroup,namespace,以及AUFS类的Union FS 等技术。对进程进行封装隔离,属于操作系统层面的虚拟化技术。由于隔离的进程独立于宿主机和其他的隔离的进程,因此也称为容器。
Docker在容器的基础上,进行了进一步的封装,从文件系统,网络互联到进程隔离等等。极大的简化了容器的创建和维护。是的Docker技术比虚拟机技术更为轻便、快捷。

二、Docker的优势
更高效的利用系统资源
更快速的启动时间
一致的运行环境
持续交付和部署
更轻松的迁移
更轻松的维护和扩展

三、Docker与传统虚拟机比较
特性 容器 虚拟机
启动 秒级 分钟级
硬盘使用 一般为MB 一般为GB
性能 接近原生 较弱
系统支持量 单机支持上千个容器 一般几十个

四、Docker架构
Docker使用客户端-服务端架构模式,使用远程API来管理和创建Docker容器。在这里插入图片描述

五、Docker的三个基本概念(Docker的生命周期)
镜像:操作系统分为内核和用户空间,对于Linux而言,内核启动后,会挂载root文件系统为其提供用户空间支持。而Docker镜像就相当于是一个root文件系统。
Docker镜像是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些运行时准备的一些配置参数(如匿名卷、环境变量、用户等)。镜像不含包任何动态数据,其内容在构建之后也不会被改变。
因为镜像包含操作系统完整的root文件系统,其体积往往是庞大的,因此在 Docker设计时将其设计为分层存储的架构。镜像只是一个虚拟的概念,其实际体现并非有一个文件组成,而是由一组文件系统组成或者说,由多层文件系统联合组成。
镜像构建时,会一层层构建,前一层是后一层的基础。每一层构建完就不会再发生改变,后一层的任何改变只发生在自己这一层。在构建镜像的时候,需要额外小心,每一层尽量只包含该层需要添加的东西,任何额外的东西应该在该层构建结束前清理掉。
分层存储的特征还是用镜像的复用、定制变的更为容易。甚至可以用之前构建好的镜像作为基础层,然后进一步添加新的层,以定制自己所需要的内容,构建新的镜像。
容器:镜像和容器的关系,就想java中的类和实例一样,镜像是静态的定义,容器是进行运行时的实体。容器可以被创建、启动、停止、删除、暂停等。
镜像使用的是分层存储,容器也是如此。每一个容器运行时,是以镜像为基础层,在其上创建一个当前容器的存储层,我们可以称这个为容器运行时读写而准备的存储层为容器存储层。
容器存储层是生存周期和容器一样,容器消亡时,容器存储层也随之消亡。因此任何保存于容器存储层的信息都会随容器删除而丢失。
按照Docker最佳实践的要求,容器不应该向其存储层内写入任何数据,容器存储层要保持无状态化。所有的文件写入操作,都应该使用Volume数据卷、或者绑定宿主目录,在这些位置的读写会跳过容器存储层,直接对宿主发生读写,其性能和稳定性更高。
数据卷的生存周期独立于容器,容器的消亡,数据卷不会消亡。因此使用数据卷后,容器删除或者重新运行之后,数据却不会丢失。
仓库:镜像构建完成后,可以很容易的在当前宿主机上运行,但是如果需要在其他服务器上使用这个镜像,我们就需要一个集中的存储、分发镜像的服务,Docker Register 就是这样的服务。
一个Docker Register中可以包含多个仓库,每个仓库可以包含多个标签,每个标签对应一个镜像。
通常,一个仓库会包含同一个软件不同版本的镜像,而标签就常用于对应该软件的各个版本。我们可以通过<仓库名>:<标签>的格式来指定具体是哪个版本的镜像,如果不给出标签,将以latest作为默认标签。

六、Docker的安装
1)系统要求:
Docker CE 支持64位版本Centos 7,并且要求内核版本不低于3.10

# 可以使用uname -a 查看内核版本
[root@localhost ~]# uname -a
Linux localhost 3.10.0-1062.9.1.el7.x86_64 #1 SMP Fri Dec 6 15:49:49 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
# 或者使用uname -r 查看内核版本
[root@localhost ~]# uname -r
3.10.0-1062.9.1.el7.x86_64

2)卸载旧版本
旧版本的Docker称为docker或者docker-engine, 使用一下命令卸载旧版本

[root@localhost ~]# sudo yum remove docker docker-common docker-selinux docker-engine

出现以下内容就卸载完成,可以重新安装Docker拉。

[root@localhost ~]# sudo yum remove docker docker-common docker-selinux docker-engine
# 此处内容省略
......
Dependencies Resolved

=============================================================================================================================================================================================
 Package                                         Arch                                 Version                                          Repository                                       Size
=============================================================================================================================================================================================
Removing:
 container-selinux                               noarch                               2:2.107-3.el7                                    @extras                                          40 k
Removing for dependencies:
 containerd.io                                   x86_64                               1.2.13-3.1.el7                                   @docker-ce-stable                                90 M
 docker-ce                                       x86_64                               3:19.03.8-3.el7                                  @docker-ce-stable                               104 M

Transaction Summary
=============================================================================================================================================================================================
Remove  1 Package (+2 Dependent packages)

Installed size: 194 M
Is this ok [y/N]: y
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Erasing    : 3:docker-ce-19.03.8-3.el7.x86_64                                                                                                                                          1/3 
  Erasing    : containerd.io-1.2.13-3.1.el7.x86_64                                                                                                                                       2/3 
  Erasing    : 2:container-selinux-2.107-3.el7.noarch                                                                                                                                    3/3 
  Verifying  : containerd.io-1.2.13-3.1.el7.x86_64                                                                                                                                       1/3 
  Verifying  : 2:container-selinux-2.107-3.el7.noarch                                                                                                                                    2/3 
  Verifying  : 3:docker-ce-19.03.8-3.el7.x86_64                                                                                                                                          3/3 

Removed:
  container-selinux.noarch 2:2.107-3.el7                                                                                                                                                     

Dependency Removed:
  containerd.io.x86_64 0:1.2.13-3.1.el7                                                           docker-ce.x86_64 3:19.03.8-3.el7                                                          

Complete!
[root@localhost ~]# 

如果出现以下内容,则说明没有安装过,可以直接安装

[root@localhost ~]# sudo yum remove docker docker-common docker-selinux docker-engine
Loaded plugins: fastestmirror
No Match for argument: docker
No Match for argument: docker-common
No Match for argument: docker-selinux
No Match for argument: docker-engine
No Packages marked for removal
[root@localhost ~]# 

3)使用yum安装

[root@localhost ~]# yum install docker-ce

4)启动docker

[root@localhost ~]# systemctl start docker

可以使用一下命令查看docker是否启动成功

[root@localhost ~]# systemctl status docker
● docker.service - Docker Application Container Engine
   Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)
   Active: active (running) since Fri 2020-05-01 07:03:36 CST; 5s ago
     Docs: https://docs.docker.com
 Main PID: 573347 (dockerd)
    Tasks: 11
   Memory: 40.9M
   CGroup: /system.slice/docker.service
           └─573347 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

May 01 07:03:35 localhost dockerd[573347]: time="2020-05-01T07:03:35.997904188+08:00" level=info msg="ccResolverWrapper: sending update to cc: {[{unix:///run/containerd/containerd..." module=grpc
May 01 07:03:35 localhost dockerd[573347]: time="2020-05-01T07:03:35.997917772+08:00" level=info msg="ClientConn switching balancer to \"pick_first\"" module=grpc
May 01 07:03:36 localhost dockerd[573347]: time="2020-05-01T07:03:36.016765727+08:00" level=info msg="[graphdriver] using prior storage driver: overlay2"
May 01 07:03:36 localhost dockerd[573347]: time="2020-05-01T07:03:36.039730058+08:00" level=info msg="Loading containers: start."
May 01 07:03:36 localhost dockerd[573347]: time="2020-05-01T07:03:36.158494578+08:00" level=info msg="Default bridge (docker0) is assigned with an IP address 172.17.0.0/16. Daemon...d IP address"
May 01 07:03:36 localhost dockerd[573347]: time="2020-05-01T07:03:36.203335230+08:00" level=info msg="Loading containers: done."
May 01 07:03:36 localhost dockerd[573347]: time="2020-05-01T07:03:36.224586842+08:00" level=info msg="Docker daemon" commit=afacb8b graphdriver(s)=overlay2 version=19.03.8
May 01 07:03:36 localhost dockerd[573347]: time="2020-05-01T07:03:36.224665888+08:00" level=info msg="Daemon has completed initialization"
May 01 07:03:36 localhost dockerd[573347]: time="2020-05-01T07:03:36.257371691+08:00" level=info msg="API listen on /var/run/docker.sock"
May 01 07:03:36 localhost systemd[1]: Started Docker Application Container Engine.
Hint: Some lines were ellipsized, use -l to show in full.

5)测试Docker是否安装正确
使用一下名称启动一个基于hello-world镜像的容器,出现以下内容说明docker安装成功

[root@localhost ~]# docker run hello-world
Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
    (amd64)
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID:
 https://hub.docker.com/

For more examples and ideas, visit:
 https://docs.docker.com/get-started/

6)删除docker安装包

[root@localhost ~]# yum remove docker-ce

7)删除docker镜像

[root@localhost ~]# rm -rf /var/lib/docker

七、Docker命令
查看Docker命令

[root@localhost ~]# docker --help

从Docker镜像仓库获取镜像的命令是docker pull,格式为

docker pull [选项] [Docker Register 地址[:端口]/] 仓库名[:标签]
例如:
docker pull ubuntu:16.04

运行镜像

docker run -it --rm ubuntu:16.04 bash
-it: 这是两个参数,-i:交互操作, -t:是终端
--rm: 这个参数是说容器退出后随之将其删除
ubuntu:16.04: 这是指用ubuntu:16.04镜像为基础来启动容器
bash: 放在镜像名后面的是命令,
exit: 退出容器

查看已经下载的镜像

[root@localhost /]# docker image ls
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
ubuntu              16.04               005d2078bdfa        6 days ago          125MB

查看镜像、容器、数据卷占用的空间

[root@localhost /]# docker system df
TYPE                TOTAL               ACTIVE              SIZE                RECLAIMABLE
Images              1                   0                   124.6MB             124.6MB (100%)
Containers          0                   0                   0B                  0B
Local Volumes       0                   0                   0B                  0B
Build Cache         0                   0                   0B                  0B
BSD盲区检测系统性能要求及试验方法 盲区监测系统BSD通过安装在车辆后方的两颗毫米波雷达实时监测驾驶员视野盲区,当发现视野盲区内出现其它道路使用者时,通过左右后视镜上的警示灯向驾驶员发出报警。 阅读详情

相关推荐

SystemVerilog学习总结

因为选择的offer是IC验证,以前学的是设计,所以只能再学systemverilog(SV)和UVM了。在学习SV和UVM之前,我认为需要学习以下几个部分:数字电路、c++和verilog。因为IC验证确实有不少别的专业之前没学过数字电路和Verilog,所以还是最好先学习一下。 知识点的总结主要是通过systemverilog验证-测试平台编写指南这本书进行的,所以请看书。通过对这本书的目录进行重点的划分,然后再进行相关知识点的总结。最后,给出自己收集的别的博主IC EDA环境的虚拟机,以及使用虚拟机需

博主毕竟还是人,肯定会有错误,各位看的时候发现错误提出来就好 1万+

《Docker技术入门与实战》 17 核心实现技术

概述 Docker起源于LXC(Linux Container),0.9版本起转移到全新设计的libcontainer,以此为基础退出了runc项目。2015年6月将runc捐献,牵头成立了OCI,专注于运行时规范(runtime-spce)和镜像规范(imags-spec)。 OCI中包含了业界顶级企业,如Amazon,Cisco,Dell,Google,Hewlett Packard,Huawei,IBM,Intel,Microsoft,Oracle,Red Hat,SUSE,Vmware...

山水牧羊 734

3dsMax高效导入OSGB倾斜模型的3个关键步骤与插件应用

本文详细解析了在3dsMax中高效导入OSGB倾斜模型的三个核心步骤:建立索引、处理贴图路径以及选择合适的插件。针对导入过程中常见的模型崩溃、贴图丢失和操作卡顿问题,提供了从数据结构理解到插件选型的实战解决方案,帮助用户实现大规模实景模型在3dsMax中的流畅导入与编辑。

weixin_29238147的博客 468

Centos7的安装、Docker1.12.3的安装,以及Docker Swarm集群的简单实例

目录 目录 1、环境准备 1.1、Centos 7 64位安装 1.2、网络配置 1.3、更改hostname 1.4、配置ssh免密码登录登录 2、安装Docker1.12.3和初步配置 2.1、安装Do...

dianbutang4605的博客 360

仿真每日一练 | 有限元模态分析详解

结构的振动一直是工业领域产品分析的重点,在振动的仿真分析中,模态分析是其最基本的分析类型,通过研究结构的固有频率和振型对产品的设计提供指导。2.2、在interaction模块,通过special->Spring,在各点之间分别创建弹簧单元,弹簧刚度为1000。2.1、在interaction模块,创建两个RP点,与两侧RP点各间隔100大小,如图3所示;其中M、K、C均为n*n的矩阵,s、x、v为n*1的矢量,n为系统自由度数量。3、在Assembly模块创建装配体,两点之间的距离为100,如图2所示;

ansysxuexizhe的博客 1655

【脑电分析系列】第7篇:频域分析基石 — 功率谱密度(PSD)的计算与常见方法对比

本文探讨了脑电图(EEG)频域分析的核心方法——功率谱密度(PSD)。通过对比基于快速傅里叶变换的周期图法和更稳健的Welch's方法,指出后者通过分段、加窗和平均处理,能有效降低估计方差,更适合分析非稳态的脑电信号。文章详细解析了关键参数设置对频率分辨率和统计稳定性的影响,并提供了Python计算实现。PSD分析将复杂的脑电信号转换为直观的频域特征,为研究认知功能和神经疾病提供重要依据。

qq_32516809的博客 1802

Docker启动错误

Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

bare_rain的博客 3638

主流反爬虫、反作弊防护与风控对抗手段

主流反爬虫、反作弊风控防护中的核心设计点与对抗策略

吴秋霖的博客 2554

Docker/Container FAQ 修改默认网段

3.kube-proxy 操作 iptables 锁相关的问题 其它组件未挂载 iptables 锁导致并发写入失败。2.Docker/container变更存储目录,引发网络异常。修改/etc/docker/daemon.json。

Asuicao的博客 1034

YOLOv11的网络结构概览(Backbone-Neck-Head):介绍骨干网络(Backbone)、特征融合层(Neck)和检测头(Head)的作用

YOLOv11架构解析:从特征提取到目标检测 YOLOv11继承了YOLO系列的经典三组件架构,包含Backbone、Neck和Head三部分。Backbone基于改进的CSPDarknet,通过Conv和C3模块进行多尺度特征提取;Neck采用FPN+PAN结构融合不同层次特征;Head负责检测任务输出。网络整体设计注重高效性和多尺度特征融合,采用C3模块优化信息流和梯度流,配合SPPCSPC增强特征表达能力。该架构在保持实时检测速度的同时,提升了目标检测精度,体现了YOLO系列"一次看全图&q

本博客聚焦 YOLOv11 全流程落地,涵盖架构优化、数据集处理、训练技巧与多场景部署,兼及国产数据库、Java 开发与 AI 模型应用,内容兼顾理论与工程实践,为开发者提供系统干货,助力高效提升技术能力。 1万+

ICC2 user guide(二)Placement and Optimization

ICC2 place阶段user guide

m0_61544122的博客 9224

最新解决办法----Docker默认网段与主机网段冲突

从上面可以看出docker建立了3个虚拟网卡,分别为app_app_network、app-default、bridge,其中 app_app_network、app-default是docker-compose启动后建立的,我们只需要修改这2个网络分配的网络地址即可。二、 如果用 docker-compose启动,并且 docker-compose.yml有指定network,在启动过程同样会建立172.17.0.0类似的网络地址,可能还是会与主机冲突,这时候我们使用以下方法修改默认的网段。

m0_67574926的博客 3202

信贷系统学习总结(6)—— 贷前、贷中、贷后全流程核心模型解析

本文系统解析了金融风控模型的技术演进与应用实践。从贷前、贷中到贷后全流程,详细介绍了A卡、B卡、C卡三类核心评分模型,以及反欺诈、动态监控、催收优化等关键技术的实现路径。重点阐述了特征工程设计、模型验证指标、联邦学习等创新应用,并提供了多个实战案例数据。同时提出了算法选择的"黄金三角"原则和分阶段技术演进路线,强调数据治理、模型全生命周期管理和复合型团队建设的重要性。文章指出未来风控将向决策智能化、数据无感化和风险预知化方向发展,需要平衡技术创新与合规要求。

科技D人生 1219

Docker 入门教程(一):从概念到第一个容器

Docker入门教程:从概念到第一个容器 本文介绍了Docker的基础知识,包括其作为开源容器化平台的特性,以及与虚拟机的对比。文章详细讲解了Docker的核心概念:镜像(Image)、容器(Container)、Dockerfile和仓库(Registry)。同时提供了Windows/macOS和Linux(Ubuntu)系统的Docker安装指南,并展示了如何通过"docker run hello-world"命令运行第一个测试容器。最后列举了常用的Docker命令,如查看容器/镜像

wwl412095144的博客 1770

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

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

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Docker(一):Docker入门教程

如今Docker的使用已经非常普遍,特别在一线互联网公司。使用Docker技术可以帮助企业快速水平扩展服务,从而到达弹性部署业务的能力。在云服务概念兴起之后,Docker的使用场景和范围进一步发展,如今在微服务架构越来越流行的情况下,微服务+Docker的完美组合,更加方便微服务架构运维部署落地。 本文详细解释介绍Docker入门相关内容,后期重点关注Docker在微服务体系中的使用。在了解Do...

纯洁的微笑 7236

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

Docker实战之Docker入门教程(一)

Docker 引言 1. 什么是虚拟化 在计算机中,虚拟化(英语:Virtualization)是一种资源管理技术,是将计算机的各种实体资源,如服务器、网络、内存及存储等,予以抽象、转换后呈现出来,打破实体结构间的不可切割的障碍,使用户可以比原本的组态更好的方式来应用这些资源。这些资源的新虚拟部份是不受现有资源的架设方式,地域或物理组态所限制。一般所指的虚拟化资源包括计算能力和资料存储。 在...

小陈之JAVA 2555

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

Docker教程(一) Docker入门教程

Docker教程(一) Docker入门教程 本文链接:https://blog.csdn.net/yuan_xw/article/details/51935278 Docker教程(一) Docker入门教程 1Docker入门教程 1.1集装箱是什么 在了解Docker之前,我们先了解一下集装箱这个概念。 集装箱,英文名container.集装箱的出现,...

YunWisdom 597

Docker入门教程【一】

Docker 是一个开源的应用容器引擎,基于 Go 语言] 并遵从Apache2.0协议开源。Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。Docker 使用客户端-服务器 (C/S) 架构模式,使用远程API来管理和创建Docker容器。 Docker有免费的CE社区版和收费的EE企业版,本文安装的是...

qq_35854212的博客 192

docker入门教程(一)介绍

今天小普要和各位分享的是最近一直很火的容器小鲜肉,那就是docker啦。本文主要会介绍docker的一些基础的概念以及docker的最简单的几个安装方式。 Docker是一个新的容器化的技术,它轻巧,且易移植,号称“build once, configure once and run anywhere,按照小普的理解是就是一次编译,到处运行,这个有点类似java虚拟机的意思。因此本篇文章主要涉及的...

RJ0024的博客 270

Docker 入门教程(一) - Docker Tutorial

Docker 教程 作者: Jakob Jenkov 原文链接 Docker是一种使用名为Dockerfile的打包规范将应用程序和服务器配置打包为 Docker 镜像的简单方法。 Docker 镜像可以在任意多个实例中启动 。 Docker 镜像的每个运行实例都称为 Docker容器(Docker Container)。该Docker教程介绍了Docker镜像,容器和 Dockerfile 是什么,如何创建,运行和发布它们以及更多的内容。 Docker 的优点 使用 Dockerfile 打包应用程

Kaybee - 练级之路 1329

Docker入门教程一

Docker 是基于LXC(Linux虚拟化)技术的基于go语言编写的一种开源项目,用于将应用程序自动部署为可在云或本地运行的便携式独立容器。

weixin_73368873的博客 387

Docker入门教程(一)介绍

Docker入门教程(一)介绍 Docker入门教程(二)命令 Docker入门教程(三)DockerFile Docker入门教程(四)Docker Registry Docker入门教程(五)Docker安全 Docker入门教程(六)另外的15个Docker命令 Docker入门教程(七)Docker API Docker入门教程(八)Docker Remote API Do

qqpedily的专栏 539

Docker(一) Docker入门教程

如今Docker的使用已经非常普遍,特别在一线互联网公司。使用Docker技术可以帮助企业快速水平扩展服务,从而到达弹性部署业务的能力。在云服务概念兴起之后,Docker的使用场景和范围进一步发展,如今在微服务架构越来越流行的情况下,微服务+Docker的完美组合,更加方便微服务架构运维部署落地。 本文详细解释介绍Docker入门相关内容,后期重点关注Docker在微服务体系中的使用。在了解Do...

weixin_38399962的博客 353

Docker系列入门教程一,Docker 安装和基本认识

Docker吐血总结系列教程,入门到实战

大大帅 448

Docker(一) Docker入门教程

一、相关概念 Docker是CS架构,主要有两个概念: Docker daemon: 运行在宿主机上,Docker守护进程,用户通过Docker client(Docker命令)与Docker daemon交互。 Docker client: Docker 命令行工具,是用户使用Docker的主要方式,Docker client与Docker daemon通信并将结果返回给用户,Docker c...

weixin_30299539的博客 55
上一篇: Scala高阶函数介绍
下一篇: Java并发机制的底层实现原理
geek-wmy
博客等级 码龄9年 322粉丝 126原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值