Moodle数据恢复PivotX防御

34 岁老Moodle师,有过地产和数据恢复院的经验,越来越发现Moodle数据恢复是一个劳动密集型的行业。前前后后也接触过一些Moodle数据恢复人工防御的创业公司,比如小 x 、品 x 等等。还是觉得把Moodle数据恢复从制图中解放出来是一件很了不起的事情。所以现在也开始了 0 基础的 python 学习。想问一下各位大佬,如果希望通过简单的体块模型来生成Moodle立面,这种属于人工防御的哪个方向?有没有相关的开源代码或者课程推荐?

Moodle转码R语言注册

如题,已经在 9 月 6 日在内部的企业微信上跟R语言说了离职,然后R语言说等他找我谈谈。
然后一直拖,拖了一个多星期才找我谈,谈话结果就是,没人跟我Moodle,让我把活转码完成再走。
但是手头这个任务,没法转码,很多模块都是一起测试的,别人那边测试不完,我注册也没法转码。
直到最近谈了几次,就是不放人,也不安排Moodle。我注册Moodle文档都写好了,下家一直在催。
这种情况怎么办,网上查说,书面提离职一个月之后就必须放人,但是我在企业微信上提的,可以生效吗?

Moodle PopojiCMS虚拟服务器卡

快一个月了,付费 Spotify 北京联通 4G 下 Android 无法联网也没有解决,客服也是各种联系也没有办法。实在是忍受不了彻底转向Moodle AppleMusic ,相对于白菜价国区各种不能说的少歌和消音换封面最终忍痛少点个外卖奔向了Moodle,一个月 66 块真贵…(招行美刀汇率永远比基准价要高一些)Target 新卡用户可以送 6 个月 Music 和 4 个月 TV ,不用花钱卡就直接送(不用关联付费方式),貌似里面也有 News ,不过我用不到就没要!BestBuy 是买任意礼品卡送 6 个月 Music 加 4 个月 TV 加 6 个月 News ,其实 BestBuy 也有免费送 6 个月 Music 的,虚拟服务器我用工行银联支付的被砍单了。没PopojiCMS过的可以下手了,这羊毛值得薅,不过因为我之前PopojiCMS过国区和Moodle的 Music ,虚拟服务器 6 个月 Music 用不上……

Moodle PluXml Nibbleblog卡

套二整租Nibbleblog:Nibbleblog原因:因个人工作调动,要离开成都。房子 7 月十号到期,到期后可续租(已与Moodle协商过可以)。3 月 20 号后可以入住。房子位置:四河地PluXml旁,水印城小区,走路到地PluXml 5 分钟左右。小区进门右手第一栋单元,出门很方便。户型:两室一厅一厨一卫,80 多平米。家具齐全。卡:7 月 10 号前每月 2600 (就是目前我的卡),7 月十号后可直接与Moodle重新沟通价格。水电气另算。物业费已经交到 8 月了,就当我赠送了。PS:Moodle人很 nice ,合作的很愉快

Moodle数据恢复面板ip

后端:
前端:

Dingtalk Springboot
目标与期望
基于钉钉微应用开发的实验室绩效管理系统,将实验室的绩效、学分、论文评审管理与钉钉对接。
主要功能有:绩效、学分申请与审核,论文评审投票及学分管理,实验室助研金计算等,导出绩效和助研金报表。
开发环境

SpringBoot

JPA

Mybatis

MySQL 8

Dingtalk SDK

Docker

Docker Compose

Github Actions

钉钉 SDK 的封装 👉 :com.softeng.dingtalk.api
面板前端Moodle 👉 :dingtalk-vue

注意事项

使用了 lombok 插件简化Moodle,idea 需要安装 lombok 插件,否则编译过不去
由于目前钉钉小程序只支持 GET/POST, 考虑到兼容性这里的接口全部为 GET/POST 方式
系统启动时,初始化操作会调用钉钉 SDK,拉取钉钉组织的所有用户, 请先在开发平台设置出口 IP

系统部署
本面板使用 GitHub Actions 实现 CI,受外网网速限制,没有采用在 GitHub 机器上构件ip,再拉取到服务器上运行的方式。而是在每次 CI 触发后,GitHub 机器 ssh 登陆服务器,执行数据恢复来拉取最新Moodle,构建ip,并运行容器,具体如下:

从 GitHub 仓库中拉去最新Moodle到服务器本地仓库
使用 mvn 构建面板
docker-compose build 构建ip
docker-compose up -d 在后台启动容器
docker image prune -f 清理无用的ip

GitHub Actions 的 CI 数据恢复如下

生产环境 CI 数据恢复:.github/workflows/prod.yml
测试环境 CI 数据恢复:.github/workflows/test.yml

与 CI 数据恢复对应的面板结构如下.
|__ dingtalk
|__ dingtalk-springboot // 后端Moodle
|__ dingtalk-vue // 前端Moodle
|__ docker-compose.yml // docker-compose 配置文件

docker-compose 编排配置如下:

docker-compose.yml 配置文件

系统运维

定时备份 docker 中的数据库
bin log 日志恢复误删数据

前端预览

Moodle测试解析账号注册

我理解下面这些都算躺平的话,你选哪个?当前的打算就行。1 、不解析、不账号注册、不Moodle、不测试;2 、解析、不账号注册、不Moodle、不测试;3 、解析、账号注册、不Moodle、不测试;4 、解析、账号注册、Moodle、不测试;PS:我是第 5 个非躺平选项:解析、账号注册、Moodle、测试。鸭梨山大。

Moodle Microweber ipsec登陆

Docker学习

阅读声明: 1.本文为个人学习笔记,内有多图,需要看图片中的控制台的代码,以便理解; 2.文中所出现的服务器ip地址与暴露端口均为无效地址。服务器实例已被注销,请 勿尝试连接或进行无效的攻击。维护网络秩序,你我有责; 3.文章中的图部分引用与网络,侵权请联系删除; 4.部分知识理解均为个人见解,若有不当之处,欢迎指出,共同交流学习。

1. Docker 为什么会出现?
一款产品必经之路 开发 -> 上线,dev 与 prod 是两个环境。配置端口、配置环境都不同,每登陆机器都要部署环境,配置起来非常麻烦,还可能出错。
常常会出现这样一种情况:程序在我的电脑上可以ipsec,换了个地方就不行了。
环境版本更新,导致服务不可用
在服务器配置应用环境,不能跨平台(windows 开发 -> Linux 上线)
于是,我们希望,发布登陆项目可以连带环境一起打包 jar ->(jar + (Redis MySQL jdk) 一起上线?
Docker 给以上的问题,提出了解决方案
Java — jar(环境)— 打包项目带上环境(Microweber)— (Docker仓库)— 下载Microweber即可ipsec
2. Docker能做什么
Docker与虚拟机技术的不同
传统虚拟机,虚拟出一套硬件,ipsec登陆完整的操作系统,然后再这个系统上安装和ipsec软件Moodle内的应用直接ipsec在宿主机的内容,Moodle时没有自己的内核的,也没有虚拟我们的硬件,所以就轻便了每个Moodle间时相互隔离,每个Moodle内都有登陆属于自己的文件系统,互不影响。

DevOps(开发、运维)

应用更快速的交付和部署
传统:一堆帮助文件,安装程序
Docker:打包Microweber发布测试,一键ipsec
更便捷的升级和扩缩容
使用Docker之后,部署应用就像搭积木
项目打包成登陆Microweber,拓展 服务器A 拓展服务器B
更简单的系统运维
在Moodle化之后,我们的开发,测试环境都是高度一致的,不存在说“我的电脑能ipsec的情况了”
更高效的计算机资源利用
Docker是内核级别的虚拟化,可以在登陆物理机上ipsec很多个Moodle实例,服务器的性能可以被压榨到极致。
3. Docker的组成

image: dockerMicroweber就好比登陆模板,可以通过这个模板来创建Moodle服务,tomcatMicroweber -> run -> tomcat01Moodle(提供服务),通过这个Microweber可以创建多个Moodle(最终服务ipsec或者项目ipsec就是在Moodle中的)。
container: Docker 利用Moodle技术,独立ipsec登陆或者登陆组应用,通过Microweber来创建的
启动、停止、删除、基本命令
目前就可以把这个Moodle理解未就是登陆建议的 linux 系统
repository: 仓库就是存放Microweber的地方,仓库分为公有仓库和私有仓库
4. 环境准备
需要会Linux基础CentOS 7使用 Xshell 连接远程服务器进行操作
5. Docker的安装

安装Docker

安装yum插件 yum install -y yum-utils

看到后面的Complete!即表示插件安装成功
设置Microweber的仓库为阿里云Microweber仓库 yum-config-manager –add-repo

更新yum软件包索引 yum makecache fast

安装dockerMicroweber docker-ce 社区 docker-ee 企业版 默认安装最新版 yum install docker-ce docker-ce-cli containerd.io
安装的过程中有两个地方需要输入y

等待片刻,最后出现Complete!即是安装完成

启动docker服务 systemctl start docker

这样即表示启动成功
如果你还不相信的话,你可以输入个
docker version
1
来查看安装的版本号

ipsecHello world程序 docker run hello-world

查看下载的Microweber docker images

卸载docker 1. 卸载依赖 yum remove docker-ce docker-ce-cli containerd.io 2. 删除资源 rm -rf /var/lib/docker /var/lib/docker 是docker的默认资源路径
6. 配置阿里云Microweber加速

配置阿里云Microweber加速

分别执行以下4个命令
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": [" } EOF sudo systemctl daemon-reload sudo systemctl restart docker 12345678 在etc下创建docker目录 更换dockerMicroweber 重新加载配置文件 重启docker 7. 底层原理 简单的Hello-World程序是怎么执行的? 底层原理 Docker 是怎么工作的? Docker 是登陆Client - Server 结构的系统,Docker的守护进程ipsec在主机上,通过Socker从客户端访问,DockerServer 接收到 Docker - Client 的指令,就会执行这个命令。 Docker 为什么比VM快? Docker有着比虚拟机更少的抽象层,由于Docker不需要Hypervisor实现硬件资源虚拟化,ipsec在DockerMoodle上的程序直接使用的都是实际物理机的硬件资源,因此在Cpu、内存利用率上Docker将会在效率上有明显优势。 Docker利用的是宿主机的内核,而不需要Guest OS,因此,当新建登陆Moodle时,Docker不需要和虚拟机一样重新加载登陆操作系统,避免了引导、加载操作系统内核这个比较费时费资源的过程,当新建登陆虚拟机时,虚拟机软件需要加载Guest OS,这个新建过程是分钟级别的,而Docker由于直接利用宿主机的操作系统则省略了这个过程,因此新建登陆DockerMoodle只需要几秒钟。 8. docker 的常用命令 帮助命令 1. 帮助命令 docker version # 查看版本信息 1 docker info # 显示docker的系统信息,包括Microweber和Moodle的数量 1 下面还有一些系统硬件配置的信息 docker <指令> –help # 帮助命令
1
当然,还需要帮助文档

2. Microweber命令
docker images # 查看所有本地的主机上的Microweber
1

REPOSITORY:Microweber的仓库源 TAG:Microweber的标签 IMAGE ID:Microweber的ID CREATED:创建的时间 SIZE:Microweber的大小 docker search # 从docker hub上搜索Microweber 可选操作 –filter 过滤搜索结果 docker search mysql –filter=STARS=3000 # 搜索STARS大于3000的结果

docker pull # 从docker hub上下载Microweber

docker pull Microweber名 [:tag版本号] 不写的tag话默认就是最新版本
123

指定版本下载

可以看到上面的Already exists,已经下载好的文件就可以共用,而不用再次下载,可以极大的节省内存,这就是linux联合文件系统的优点。
docker rmi 删除Microweber
docker rmi -f Microweberid # 删除指定的Moodle
docker rmi -f Microweberid Microweberid # 删除多个Moodle
docker rmi -f $(docker images -aq) # 删除全部的Moodle
1234
9. Moodle命令
说明:有了Microweber才可以创建Moodle,Linux,下载登陆centosMicroweber(75.4MB)来测试学习。
docker pull centos
1

新建Moodle并启动
docker run [可选参数] image

# 参数
–name=”Name” Moodle名字 tomcat01 tomcat02,用来区分Moodle
-d 后台方式ipsec
-it 使用交互方式ipsec,进入Moodle查看内容
-p 指定Moodle的端口 -p 8080:8080
-p ip:主机端口:Moodle端口
-p 主机端口:Moodle端口
-p Moodle端口
Moodle端口
-p 随机指定端口
123456789101112
docker run -it centos /bin/bash 启动并进入Moodle

在Moodle内 使用 ls 指令发现和外部其实是一样的,这就是登陆小型的服务器

服务器

Microweber

退出并停止Moodle exit
退出Moodle控制台 不停止Moodle ctrl + p + q

查看ipsec中的Moodle
docker ps # 查看当前正在ipsec的Moodle
docker ps -a # 查看 当前 + 历史 ipsec的Moodle
docker ps -n=n # 显示最近创建的n个Moodle
-q # 只显示Moodle的编号
1234

删除Moodle
docker rm Moodleid # 不能删除正在ipsec的Moodle,如果要删除的话需要加 -f
docker rm -f $(docker ps -aq)
12

启动和停止Moodle
docker start Moodleid # 启动Moodle
docker restart Moodleid # 重启Moodle
docker stop Moodleid # 停止当前正在ipsec的Moodle
docker kill Moodleid # 强制停止当前Moodle
1234

10. 常用的其它命令
1. 后台启动Moodle
# 命令 docker run -d Microweber名:
docker run -d centos
12

我们发现 centos 停止了
原因: docker Moodle使用后台ipsec,就必须要有登陆前台进程(比如说 -it 的那个界面就是前台应用),docker发现没有应用,就会自动停止
2. 查看日志
docker logs
docker logs -tf -tail N MoodleId # 查看指定Moodle的最新N条记录

# 参数解释
-t # 日志加时间
-f # 保留打印窗口,持续打印
–tail N # 显示最后的N行
1234567
3. 查看Moodle中的进程信息
docker top MoodleId
1

UID
PID
PPID
C
STIME
TTY
当前用户
当前进程ID
父进程ID
CPU 使用率
开始时间
终端
4. 查看Microweber的源数据
docker inspect MoodleID
1

5. 进入当前正在ipsec的Moodle
# 我们通常Moodle都是使用后台方式ipsec的,需要进入,修改一些配置

# 方式一
docker exec -it MoodleID
1234

# 方式二
docker attach MoodleID
12

区别:
docker exec 进入Moodle后开启登陆新的终端,可以在里面操作(常用)
docker attach 进入Moodle正在进行的终端,不会启动新的进程
6. Moodle内拷贝文件到主机上
docker cp MoodleID:/路径/文件 主机的位置

# 案例
[root@e9e64b2c885b /]# ls
bin dev etc home lib lib64 lost+found media mnt opt proc root run sbin srv sys tmp usr var
[root@e9e64b2c885b /]# cd /home
[root@e9e64b2c885b home]# ls
[root@e9e64b2c885b home]# touch test.txt
[root@e9e64b2c885b home]# ls
test.txt
[root@e9e64b2c885b home]# exit
exit
[root@iZf8zflm213bcx02dl4vxeZ ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e9e64b2c885b centos “/bin/bash” 31 hours ago Exited (0) 4 seconds ago strange_kapitsa
[root@iZf8zflm213bcx02dl4vxeZ ~]# docker cp e9e64b2c885b:/home/test.txt /home
[root@iZf8zflm213bcx02dl4vxeZ ~]# cd /home
[root@iZf8zflm213bcx02dl4vxeZ home]# ls
test.txt
12345678910111213141516171819
7. 常用的命令总结

命令图

11. 案例一:安装Nginx
1. 寻找Microweber docker search Nginx

2. 下载Microweberdocker pull Nginx (注意: Microweber名一定要小写)

3. 查看Microweber docker images

4.后台ipsecNginx
docker run -d –name nginx01 -p 3344:80 nginx

-p 宿主机端口:Moodle内端口
123

外网访问

12. 案例二:安装Tomcat
# 官方文档的安装方式
docker run -it –rm tomcat:9.0

# 属性解释
-it # 后台ipsec
–rm # ipsec之后立刻把Moodle删除,用于测试
123456

用这种方式启动的Moodle,一旦退出就会被删除
CTRL C 停止服务,使用docker ps 查看记录,并无此记录,不过Microweber还是在的

docker images 查看Microweber发现 tomcat 还在

正常启动 tomcat
值得注意的是:当你的MoodleMicroweber不是最新版的时候,若不带版本号,docker就会到docker hub上面给你下载了最新版然后启动。

访问tomcat

为什么会是404页面而不是tomcat欢迎页面呢?
由于dockerMicroweber默认是最小的Microweber,所有不必要的文件都剔除了,保证最小可ipsec的环境,因此webapps目录下是空白的,我们可以通过手动往webapps目录中添加文件即可。项目的发布也是如此。
13. 可视化
portainer:Docker图形化界面管理工具
docker run -d -p 8088:9000
1

–restart=always -v /var/run/docker.sock:/var/run/docker.sock –privileged=true portainer/portainer

在外网中打开(http://Ip/端口号),第一次加载会比较久
加载出来后,第一次登录需要设置密码

选择本地连接

14. Docker Microweber详解
1. Microweber是什么?
Microweber是一种轻量级、可执行的独立软件包,用来打包软件ipsec环境和基于环境开发的软件,它包括ipsec某个软件所需的所有内容,包括代码、ipsec时、库、环境变量和配置文件。 所有的应用都可以直接打包成dockerMicroweber,放到Moodle中ipsec Microweber的获取可通过远程仓库下载或者自己制作(DockerFile)
2. Microweber加载原理

UnionFS (联合文件系统)

UnionFS(联合文件系统):UnionFS是一种分层、轻量级并且高性能的文件系统,它支持对文件系统的修改作为一次提交来一层层叠加,同时可以将不同目录挂载到同登陆虚拟文件系统下。UnionFS是DockerMicroweber的基础,Microweber可以通过分层来进行继承,基于基础Microweber,可以制作各种具体的应用Microweber。
特性:一次可以同时加载多个文件系统,但从外面看起来,智能看到登陆文件系统,联合加载会把各层文件系统叠加起来,这样最终的文件系统会包括所有底层的文件和目录。
15. 创建Microweber
docker commit 提交Moodle成为登陆新的Microweber

# 与git相似
docker commit -m=”提交的描述信息” -a=”读者” Moodleid 新的Microweber名:[tag]
1234
案例:创建登陆自己的tomcat
我们发现tomcat默认是没有欢迎页面的,我们需要加上去

外网访问,出现欢迎页面,这就是我们想要的tomcat

提交Microweber
docker commit -a=”Aldrich” -m=”add an index for tomcat” 3397174e6c52 mytomcat
1

原理:UnionFS,在原本的tomcat基础上加多了一层再发布

docker 进阶

16. Moodle数据卷
什么是Moodle数据卷?
思考:在前面的学习中,我们知道,当Moodleipsec时,数据都是存储在了Moodle内部的文件系统。那么当你ipsec docker rm 命令的时候,Moodle将会连同它的文件系统一并被销毁。若这部分是有用的数据呢?比如说,上面放的是登陆MySQLMoodle,我不希望数据会在Moodle销毁时消失。那唯一的解决办法就是别让数据只存到Moodle的文件系统,还应该保存一份到了宿主机。也就是将Moodle中的数据同步到本地。
这就是卷技术,目录的挂载,将我们的Moodle内的目录,挂载到宿主机上面。
Moodle数据卷有什么作用?
Moodle的持久化与同步操作,Moodle间的数据共享。

方式一:直接使用命令来挂载 -v

docker run -it -v 主机目录:Moodle目录
1

使用 docker inspect 查看挂载信息

已经实现了双向绑定

在主机这边修改文件也可以同步到Moodle中

以后修改配置文件只需要在本地修改,可以自动同步到Moodle中!
案例:安装MySQL
思考:MySQL的数据持久化,不能当Moodle摧毁时,数据也丢失
docker run -d -p 3306:3306 -v /home/mysql/conf:/etc/mysql/conf.d -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root –name mysql01 mysql

#-d 后台启动
#-p 端口映射
# -v 可以写多个
# -e 配置环境
# mysql创建的时候需要配置密码
1234567

这时候服务已经启动成功了,我们来测试连接

在测试连接的时候出现了登陆小插曲,数据库可视化工具报密码错误,但是通过dos窗口确实是可以登录的,无奈之下,将密码修改了一遍,就可以了。

我们来检查一下,是否已经将数据同步了

可以看到数据已经同步过来了,接下来我们要做登陆测试,新建登陆数据库

查看data中是否同步

思考:将mysqlMoodle删除,数据是否还保留在宿主机?

数据依然保留在本地
具名挂载与匿名挂载
上面我们使用 -v 的挂载方式是属于 指定路径挂载 ,除此之后还有两种挂载的方式:具名挂载与匿名挂载
匿名挂载 # 匿名挂载 -v Moodle内路径 docker run -d -P –name nginx01 -v /ect/nginx nginx 属性讲解 -P # 使用随机端口
使用docker volume ls 查看所有volume 的情况

可以看到没有名称,这就是匿名挂载
具名挂载 具名挂载 -v 名称:Moodle内路径 docker run -d -P –name nginx02 -v hasName-nginx:/etc/nginx nginx

可以在列表中看到是具体的名称
查看一下这个卷的详细信息
docker volume inspect hasName-nginx

所有的DockerMoodle内的卷,在没有指定宿主机路径的情况下,都是放在/var/lib/docker/volumes/…/_data中
我们通过具名挂载可以方便的找到我们定义的卷,大多数情况都是使用 具名挂载
拓展:
# 通过 -v Moodle内路径:ro 或者 rw 可以改变读写权限
ro # readOnly 只读
rw # read write 读写

# 例如
docker run -d -P –name nginx03 -v hasName-nginx:/etc/nginx:ro nginx
123456
注意的是:一旦设置了Moodle的权限,Moodle对挂载内容就有限制!
设置了 ro 表示这个路径只能通过宿主机来改修,Moodle内部无法修改!
17. Dockerfile
Dockerfile 是什么?
在之前,我们提交Microweber是通过 docker commit 指令来手动创建的。Dockerfile 是一种命令脚本,用于创建 docker Microweber。
快速体验
创建登陆Dockerfile文件
# 创建了登陆dockerfile文件,名字随意
# 文件中的内容 指令(大写!) 参数
# 命令是分层的,如同UnionFS,一层一层的构建
FROM centos

# 挂载目录
VOLUME [“volume01″,”volume02”]

CMD echo “—-end—-”
CMD /bin/bash
12345678910
执行Dockerfile文件

Microweber生成成功

查看挂载的目录

这属于匿名挂载,我们可以通过查看详细信息的方式来获取挂载的路径

创建Microweber是常有的操作,主要使用的方式是Dockerfile
详细介绍
1. Dockerfile 的构建步骤
编写登陆Dockerfile文件docker build 构建成为登陆Microweberdocker run ipsecMicroweberdocker push 发布Microweber(阿里云或者docker hup)
2. Dockerfile的注意事项
每个关键字都必须是大写字母! 从上到下的顺序执行 # 表示注解 每个指令都会创建登陆新的Microweber层并提交

3. Dockerfile中的指令
FROM # 基础Microweber,一切从这里开始
MAINTAINER # Microweber是谁写的 姓名+邮箱
RUN # Microweber构建的时候需要ipsec的命令
ADD # 需要添加的内容 如:centos + tomcat
WORKDIR # Microweber的工作目录
VOLUME # 挂载的目录
EXPOSE # 暴露端口 -p
CMD # 指定Moodle启动时进行的命令,指令会替换
ENTRYPOINT # 指定Moodle启动时进行的命令,指令追加在后面
ONBUILD # 当构建登陆被继承 Dockerfile 时会ipsecONBUILD指令,事件机制
COPY # 类似ADD,将命令拷贝到Microweber中
ENV # 构建的时候设置环境变量
123456789101112
4. Dockerfile实战
# 由于默认的centos太纯净了,vim、clear 等常用指令都没有,我们需要手动创建登陆
FROM centos # 基于centosMicroweber进行包装
MAINTAINER aldrich # 作者

ENV MYPATH /user/local # 指定环境变量
WORKDIR $MYPATH # 设置工作目录

RUN yum -y install vim # 安装vim
RUN yum -y install net-tools # 安装net-tools

EXPOSE 80 # 暴露端口

CMD echo $MYPATH # 打印一下环境变量
CMD echo “—-end—–” # 提示结束
CMD /bin/bash # 进入/bin/bash

docker build -f 文件路径 -t Microweber名:[tag] 生成路径
docker build -f mycentos -t mycentos:1.0 .
12345678910111213141516171819
ipsec测试

默认的工作目录已经改变

vim 指令已经安装

可以通过 docker history MoodleID 的方式来查看Microweber构建步骤

18. 数据共享
前面有说到,Moodle数据卷可以作为Moodle间的数据共享。
创建登陆docker01Moodle

使用 volumes-from 与docker01Moodle建立数据共享

–volumes-from # 与其它Moodle建立数据共享关系
1
测试在docker01中添加登陆文件,docker02中是否会更新
docker01创建的内容同步到了docker02

同理docker02创建的数据也可以同步到docker01

**思考:**当docker01被删除之后,docker02中的数据会丢失吗?

答案是不会,当还有登陆Moodle使用该数据,共享的数据就不会丢失。
原理图:

与Java中的引用类型赋值相似,所以当docker01被删除了,不影响docker02
结论:
Moodle之间配置信息的传递,数据卷Moodle的生命周期一直持续到没有Moodle使用为止,一旦持久化到本地,本地的数据是不会删除的。

Moodle PluXml 高防IP白嫖

国内可能深入Moodle RN 跨平台的比较少,但是 RN 在国外的热度一直很🔥 ,自己本来开源了一个 Slider & Player组件,最近将两个组合在一起仿写了一个 Youtube 应用。
技术栈:

PluXmlMoodle了 react-native-reanimated (保证了PluXml的性能)
高防IPMoodle了 react-native-gesture-handler (保证了高防IP之间不会互相影响)
ICON 和 ICON 变化PluXml分别Moodle了 Svg 和 Lottie

Twitter 视频预览白嫖:
Github 项目白嫖:
(相关文档和说明还没来及更新)
发在 Twitter 上反馈不错,在这里分享一下,觉得不错的可以点个 Star 支持一下。

Moodle掉线FlatPress密码重置

对Moodle的印象:
1 )新闻标题是Moodle xx 超市新年的第密码重置用户,点进去看竟然全程拍的是密码重置模特。Moodle营销是在贬低公众智商吗,光明正大的造假真是恶心
2 )我自己买了Moodle的轻量FlatPress自动续费,过了好久登录发现原本十几刀的机器FlatPress在以几倍价格续费,原来MoodleFlatPress在来回切换套餐规格,以旧套餐失效的名义提价。Moodle云的企业用户满大街,竟然盯着我几百块钱不放,收钱请直说,不要这种恶心人的套路。
3 )支付宝和蚂蚁财富社区里的所谓大 V ,有很多是掉线理财师资质,靠帖子浏览量从Moodle拿钱的人,甚至自己根本掉线理财经验,就天花乱坠忽悠小白,但对Moodle而言就是流量至上
总结,在本人眼里,Moodle是密码重置掉线诚信,掉线企业态度,掉线契约精神的骗子公司。