容器化基础学习01

docker部署人大金仓数据库(亲测成功) docker部署人大金仓数据库 阅读详情

容器化基础01

1、安装docker

df -h    #查看镜像挂载
cd 挂载目录 
find ./ -name "docker*"
rmp -ivh docker-engine && docker-runc 

2、Docker的三大核心概念

1. **镜像(Images)**:
   - Docker镜像是构建容器的基础,是一种只读模板。它可以看作是一个包含了运行应用程序所需的所有文件、依赖库和其他配置信息的文件系统层次结构。镜像不包含动态数据,且通常是基于先前镜像层叠加创建的,具有存储效率高、易于分发的特点。

2. **容器(Containers)**:
   - Docker容器是从镜像启动的运行实例,它是对操作系统资源的隔离和限制的虚拟化单元。容器之间互不影响,各自运行在一个独立的环境中,共享宿主机内核,但拥有自己的文件系统、CPU、内存、网络资源等,从而实现了轻量级的虚拟化效果。

3. **仓库(Registries)**:
   - Docker仓库是用来存储和分发Docker镜像的地方,其中最知名的是Docker Hub。用户可以上传自己的镜像,或者下载其他人分享的镜像。企业级场景下,也会搭建私有仓库以满足安全性和合规性需求。

3、docker基础命令

docker images   #查看镜像
docker build --privileged -t sc_sayhellow_1 .    #制作镜像
docker login -u 0318000312 gword-release-docker.com.cn   #登录docker仓库 
docker pull docker.artnj.com.cn/build/centos/system/7core   #从仓库中下载镜像,若要指定版本,则要在冒号后指定
docker network create --subnet=192.168.100.0/24 mynetwork  # 使用docker建立一个子网
docker run -itd --name db1 --net mynetwork --ip 192.168.100.101 --privileged=true --restart=always -v /opt/backup:/home/goldendb/zxdb1   #启动docker容器并指定ip,-v是目录映射关系
# docker run -itd --name sc_hellow3 --net mynetwork --ip 192.168.100.101 --privileged=true sc_sayhellow_3:latest /usr/sbin/init
docker cp 本地文件 control_test:容器内路径	# 拷贝文件到容器内,调换位置后是从容器内拷贝文件出来
docker search 镜像id或name		# 在Docker Hub(或其他镜像仓)仓库中搜索关键字的镜像
docker rmi 镜像id或name	# 删除本地镜像
docker rmi -f 镜像id或name		# 删除镜像
docker build	#构建镜像
docker save REPOSITORY:TAG -o db.tar    # 保存镜像
docker load < db.tar	 # 加载镜像

docker ps	# 列出运行中的容器
docker ps -a 	# 查看所有容器,包括未运行
docker stop 容器id或name	# 停止容器
docker kill 容器id	# 强制停止容器
docker start 容器id或name		# 启动已停止的容器
docker inspect 容器id		# 查看容器的所有信息
docker container logs 容器id		# 查看容器日志
docker top 容器id		# 查看容器里的进程
docker exec -it 容器id /bin/bash		# 进入容器
docker rm 容器id或name		# 删除已停止的容器
docker rm -f 容器id		# 删除正在运行的容器
docker export ID > filename.tar   # 导出容器
docker import - new_filename < filename.tar    #导入镜像

4、k8s基础命令

k exec -ti goldendb-manager-192-168-2-10-0 -n xzf -- /bin/bash  # 进入容器
kubectl cp 本地文件 xzf/goldendb-manager-192-168-2-10-0:容器内路径   # 拷贝文件到容器内,调换位置后是从容器内拷贝文件出来

ARM46+KylinOS 环境下的技术栈部署与工具开发指南 在 ARM46+KylinOS 环境下部署和开发应用需要特别关注架构适配和兼容性问题。通过本文介绍的步骤和方法,你可以顺利完成 MySQL、Redis、JDK、Docker 等关键组件的安装与配置,掌握 Nginx 容器的管理技巧,并学会开发 ARM64 平台专用工具。在实践过程中,遇到问题时应首先检查架构兼容性,然后再考虑配置和优化问题。随着国产自主可控技术的不断发展,ARM 架构与 KylinOS 的组合将在更多领域得到应用。希望本文对你在 ARM64+KylinOS 环境下的技术实践有所帮助! 阅读详情

相关推荐

# 01_深入解析docker容器化技术(一)

01_深入解析docker容器化技术(一) 01-第一章学习目标.mp4 02-什么是虚拟化.mp4 03-全虚拟化架构介绍.avi 04-操作系统层虚拟化介绍.avi 05-平台虚拟化介绍.avi 06-hypervisor介绍.avi 07-docker介绍.avi 08-虚拟机与容器的比较.avi 09-docker版本以及安装介绍.avi 10-docker引擎启动、停止、重启操作.avi

段子手168的博客 1362

docker安装人大金仓最新数据库

e NEED_START=yes \ 启动容器就启动数据库。-e DB_MODE=mysql \ 数据库模式:mysql。-e ENABLE_CI=no \ 大小写不敏感。-e DB_PASSWORD=root \ 密码。-e DB_USER=root \ 用户名。451a390d70bd 镜像id。

qq_759035366的博客 2595

容器化技术实战:从Docker到Kubernetes的体系化学习路径

容器技术作为现代应用封装与交付的核心标准,通过操作系统级虚拟化实现进程隔离与资源控制,其核心价值在于提供环境一致性、快速部署和弹性伸缩能力。在微服务架构和云原生转型的背景下,容器编排平台成为管理复杂分布式系统的关键技术。Kubernetes作为主流编排系统,通过声明式API和控制器模式实现对容器化应用的自动化部署、扩缩容与管理。对于开发者和运维团队而言,掌握从容器基础到编排实践的完整知识体系至关重要。开源项目container.training提供了涵盖Docker基础、容器编排、服务网格等全栈内容的体系化

weixin_26905423的博客 585

用docker方式安装openGauss数据库的事项记录

我们的国产化们:panweiDB,openGauss,Postgres。GoldenDB,mySQL……

Shion's bla bla blog 4110

人大金仓V9docker镜像包

1.是人大金仓V9镜像包,是镜像; 2.导入到系统中; 3.利用K8S的yaml部署; 4.利用docker部署;

Unity动画状态机实战:Trigger和Bool参数到底怎么选?附5个常见场景解析

本文深入解析Unity动画状态机中Trigger和Bool参数的核心差异与应用场景。通过对比两者在描述瞬时事件与持续状态上的本质区别,并结合角色移动、攻击连招、跳跃落地、受击死亡及环境交互等5个实战场景,提供了清晰的选择逻辑与避坑指南,帮助开发者构建更健壮、易维护的动画逻辑。

weixin_29009501的博客 121

国产化数据库_金仓_Linux版&Docker版部署过程及简单使用

国产化数据库金仓Linux版部署过程与简单使用

冰之杍的博客 2945

别再乱选保护板了!手把手教你用ABLIC S-8254A为3/4串锂电池组DIY安全保护电路

本文详细介绍了如何使用ABLIC S-8254A保护集成电路为3/4串锂电池组DIY安全保护电路。从选型策略、电路搭建到功能验证,手把手教你实现可靠的充放电保护系统,适用于无人机、电动工具等场景,确保锂电池组的安全使用。

weixin_42525264的博客 192

Python-100-Days 学习路线全景解读:Python、后端、DevOps 与数据分析四条路线怎么走

本文基于 Python-100-Days 开源仓库中《分享几张学习路线图》一文,为你梳理四条主流学习路线(Python 开发、后端开发、DevOps 运维、数据分析),并将路线图中的关键技能节点逐一对应到本仓库从 Day01 到 Day100 的具体章节,帮助你按图索骥、循序渐进地完成从新手到大师的进阶。 ## 路线图从哪来:Developer Roadmaps 与仓库定位 路线图(Roadm

gitblog_00963的博客 200

专有钉钉小程序(浙政钉)开发搭建流程总览

最近公司有一个项目要做浙政钉,让我来负责做。靠,我一脸懵,开发了两年多不知道浙政钉是啥,感觉我眼界还是低了。然后就去百度、同事问了一圈才知道就是个钉钉小程序嘛,然后发布到浙政钉上了。就搭建项目跑起来我都肥了很多事,中间走了很多坑。正好领导让我写《钉钉小程序前端开发流程》,这想着也写个博客吧。下面就是整个流程及我所遇到的坑!

m0_53910290的博客 6358

SPAD 单光子雪崩二极管

SPAD,全称为,是一种高灵敏度的光电探测器件,能够在非常低的光照水平下检测单个光子。SPAD在工作时,当一个光子被探测器吸收后,能够触发一个雪崩效应,产生一个可以被检测到的电信号。

qq_42786033的博客 1万+

Docker入门到专精01-容器化技术介绍

容器化技术介绍 演进历史 物理时代 部署非常慢 成本很高 资源浪费 难于扩展与迁移 受制于硬件 虚拟机时代 多部署 资源池 资源隔离 很容易扩展 VM需要安装操作系统 容器化时代 容器是APP层面的隔离 虚拟化是物理资源层面的隔离 容器化技术比虚拟机更灵活,更小巧 容器化解决的问题 标准化的应用打包 容器化技术的应用场景 标准化的迁移方式 统一的参数配置 自动化部署 应用集群监控 开发与运维之间的沟通桥梁 阿里/腾讯云的容器化应用 虚拟机上的容器化 虚拟化+容器化技术的混合应用 Docker简介

进步每一天 345

诠视MR眼镜Unity开发设置_Unity2020.3.38

请按照如下设置Android SDK 和 Gradle。打包前先将Unity切换到Android模式。Preferences 设置。

m0_71932574的博客 603

01. Docker基础环境构建

在这里我们将学习关于Docker的一些技能知识,那么首先我们应该对Docker有一个基础的认识,以及动手搭建一个基础的环境。

有一只柴犬的专栏 3524

ANSYS workbench (关于normal stiffness factor接触刚度因子)

关于normal stiffness factor接触刚度因子的含义和设置方法

weixin_43730845的博客 6809

推荐系统[一]:超详细知识介绍,一份完整的入门指南,解答推荐系统相关算法流程、衡量指标和应用,以及如何使用jieba分词库进行相似推荐,业界广告推荐技术最新进展

推荐算法其实本质上是一种信息处理逻辑,当获取了用户与内容的信息之后,按照一定的逻辑处理信息后,产生推荐结果。热度排行榜就是最简单的一种推荐方法,它依赖的逻辑就是当一个内容被大多数用户喜欢,那大概率其他用户也会喜欢。但是基于粗放的推荐往往会不够精确,想要挖掘用户个性化的,小众化的兴趣,需要制定复杂的规则运算逻辑,并由机器完成。召回:当用户以及内容量比较大的时候,往往先通过召回策略,将百万量级的内容先缩小到百量级。

丨汀、的博客 7596

终极 Docker 学习指南:快速掌握容器化技术的完整教程 [特殊字符]

想要快速上手 Docker 容器化技术吗?Fast-Docker 项目为您提供了一套完整的学习体系,从基础概念到高级应用,助您在最短时间内掌握 Docker 的核心技能。Docker 容器化技术已经成为现代软件开发的标配,掌握它能让您的开发效率提升数倍! ## 为什么选择 Fast-Docker 项目? 🤔 Fast-Docker 项目专门为 Docker 学习而设计,涵盖了 Dockerf

gitblog_00245的博客 905

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

【部署】docker容器化 前端学习

待续

代码随想录 620

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

ai-infra-engineer-learning模块01详解:AI基础设施基础(Python、Linux、Docker)一文全掌握

📘 **ai-infra-engineer-learning** 是一个开源的 AI 基础设施工程师学习路线(Learning Track),面向有 2-4 年经验的工程师,提供 500+ 小时的生产级机器学习(ML)基础设施课程。其中**模块 01(Foundations)**是整个学习之旅的地基:Python 环境搭建、Linux 系统运维与 Docker 容器化基础。本文带你一文掌握模块

gitblog_00873的博客 14

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

MLflow Docker部署:容器化机器学习工作流的最佳实践

还在为机器学习实验的复现性、环境依赖和部署一致性而烦恼吗?本文将为你详细解析如何通过Docker容器化技术,构建稳定可靠的MLflow机器学习工作流平台,实现从开发到生产的一站式解决方案。 ## 读完本文你将获得 - ✅ MLflow Docker化部署的完整方案 - ✅ PostgreSQL + MinIO持久化存储配置 - ✅ 多容器编排与网络配置最佳实践 - ✅ 生产环境优化与监控策略 ...

gitblog_01186的博客 735

漫谈容器化技术

容器化技术的发展、容器化的技术

阿甘兄 1591

如何3步搞定IsaacLab容器化部署:机器人学习环境搭建终极方案

还在为机器人学习环境配置的复杂依赖和版本冲突而烦恼?本文将带你快速掌握IsaacLab容器化部署的核心技巧,通过Docker一键搭建稳定可靠的机器人学习环境,让你专注于算法研发而非环境配置。IsaacLab容器化部署、机器人学习环境搭建、Docker环境配置是本文的三大核心关键词。 ## 痛点分析:为什么需要容器化部署? 机器人学习开发面临三大挑战:**环境配置复杂**、**GPU依赖难管理*

gitblog_00752的博客 891

基于kubneters编排的MySQL容器化实践分享

主题:基于kubernetes编排的MySQL容器化实践分享大纲:1.如何高效的学习K8S2.基于K8S,会给MYSQL的工作带来哪些优势3.企业如何更好的推广K8S的使用4.容...

老叶茶馆 445

天机学堂day01学习

本文是我在“天机学堂”项目学习期间的实践笔记与总结。内容主要涵盖两大方面:其一,记录项目中的关键技术实现、架构设计与核心原理;其二,详细梳理在实际开发、部署过程中遇到的一系列问题,并深入分析其成因、记录排查思路与最终的解决方案。旨在沉淀经验,供日后复盘与参考。

m0_67398518的博客 3918

老蔡: Docker学习教程-基础(01)

Docker基础学习 Docker简介 开发人员使用了 Docker,就不必安装和配置复杂的数据库, 也无需在不兼容语言工具链版本之间切换时担心。 应用容器化之后,其复杂性就被转移到能够轻松构建、共享和运行的容器中。当有新同事安排到新的代码库时, 无需再费时费力地安装软件和解释设置过程。 以 Dockerfile 文件形式发布的代码使用起来非常简单:首先...

weixin_33727510的博客 250
上一篇: Java修饰符的学习记录
error_code007
博客等级 码龄8年 6粉丝 6原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值