BusyBox

容器技术之Docker镜像

僤鯓⒐⒋嵵緔 提交于 2020-08-14 03:54:22
  前文我们聊了下docker的基础使用方法,大概介绍了下docker的架构,管理镜像、运行容器、管理容器的一些相关命令说明;回顾请参考 https://www.cnblogs.com/qiuhom-1874/p/12933412.html ;今天这边博客主要来聊docker的镜像的制作和分发,以及相关镜像的操作和说明;   前面我们提到过docker最核心资源之一就是镜像,镜像就好比是我们的应用程序,要想运行它,前提是要拥有它,并把它装载操作系统上;而docker里的镜像就是把应用程序所依赖的库、文件、环境等打包在一起,组成一个静态的镜像文件;这样一来有了这个镜像,我们就可以把我们自己的应用程序在任何有docker环境的主机上运行成容器;这也是docker受欢迎的原因之一吧,解脱了程序员为其应用程序而苦恼;   docker镜像包含了应用程序启动所需的文件系统以及内容,其目的就是为创建并启动为docker容器;那么docker的镜像到底是怎么构建的呢?我们来看看下面的图大概就会明白   提示:docker镜像采用分层构建的机制,最低层为bootfs,该层的主要作用是用于系统引导的文件系统,包括bootloader和内核,容器启动完成后会被卸载以节省内存资源;在bootfs之上的是rootfs,该层主要表现为docker容器的根文件系统;传统模式中,系统启动之时

Android木马病毒com.schemedroid的分析报告

随声附和 提交于 2020-08-14 03:37:23
某安全公司移动病毒分析报告的面试题目,该病毒样本的代码量比较大,最大的分析障碍是该病毒样本的类名称和类方法名称以及类成员变量的名称被混淆为无法辨认的特殊字符,每个被分析的类中所有的字符串都被加密处理了并且每个类的加密算法还不是一样的,人肉还原出被加密的字符串是很不现实的,该样本大约有100多个类,需要处理的加密字符串的解密高达几千个之多,有兴趣和能拿到样本的同学可以挑战一下自己,暂不提供样本。经过对该木马病毒进行深入和全面的分析,发现该木马病毒还是很厉害的,远控的功能比较多,盗取用户手机上的用户信息,通信app的数据信息也比较多,有些远程的功能对于用户的手机来说是致命的伤害。 本文博客地址: https://blog.csdn.net/QQ1084283172/article/details/81380553 Android木马病毒com.schemedroid的混淆对抗手段: 1.将代码中的类名称、类方法名称、类属性名称混淆为人工难以辨认的特殊字符串。 2.代码中的字符串全部被加密处理,每个类中解密字符串的函数都不一样,需要解密的字符串的量大。 字符串解密函数的代码示例: Android木马病毒com.schemedroid的分析报告 样本基本信息: apk包名:com.schemedroid 文件Md5: CFBCEE2B12DD93A6109AC06C10C34C86 1

Android模拟器挂载虚拟串口进行通信之踩坑记

混江龙づ霸主 提交于 2020-08-13 08:31:08
参考文章:https://blog.csdn.net/WarweeSZip/article/details/72956218 0 前言 最近刚接触串口通信,在学习Android串口编程,然后在一篇博客中看到可以在模拟器上挂载串口进行通信,嗯?还有这种操作,好6啊!鉴于设备还未到位,于是就动手撸起来,测试下写的串口通信的代码,于是就有了这篇踩坑记,以便以后忘记了能查阅,如果能给其他小伙伴带来一点帮助那是再好不过了。虽然很多原理还没搞懂,但好歹在踩了各种坑之后终于能够成功通信了。 还是菜鸟一枚,很多原理不懂,因此有些言论可能不准确,所以仅供参考,若有错误望指出,谢谢啦~ 1 准备 依照上篇博客的指引,需要准备以下工具: 1)虚拟串口工具 下载虚拟串口工具,可以下载参考文章中提供的链接,也可以直接百度搜索下载 安装并运行工具,并添加一对串口 2)串口调试工具 下载串口调试工具,百度一搜一大把,我使用的是这个:https://www.ttrar.com/html/158809.html 直接运行exe就可以打开窗口,分别打开两个窗口去打开串口,测试两个串口之间的通信 2 动手 这个流程是本人亲测有效的,但不排除在其他人手里会出现问题。就像我最开始也是照着他人的博客撸的,但人家就是成功的到我这儿就不行了,我也很绝望的ε=(´ο`*))) 1)准备模拟器 准备Android 4.4版本的模拟器

(二进制)k8s笔记

蹲街弑〆低调 提交于 2020-08-12 11:04:55
前言: 最近在研究k8s集群ELK收集容器里面的日志,部署elk时发现Kibana没有连接到es中,报错信息如下: {"type":"log","@timestamp":"2020-06-30T07:09:33Z","tags":["warning","elasticsearch","admin"],"pid":6,"message":"No living connections"} {"type":"log","@timestamp":"2020-06-30T07:09:36Z","tags":["warning","elasticsearch","data"],"pid":6,"message":"Unable to revive connection: http://elasticsearch-0.elasticsearch.kube-system:9200/"} {"type":"log","@timestamp":"2020-06-30T07:09:36Z","tags":["warning","elasticsearch","data"],"pid":6,"message":"No living connections"} {"type":"log","@timestamp":"2020-06-30T07:09:36Z","tags":["license",

kubernetes云平台管理实战: 集群部署(CentOS 7.8 + docker 1.13 + kubectl 1.52)

心不动则不痛 提交于 2020-08-11 21:23:32
一、环境规划 1、架构拓扑图 2、主机规划 master 192.168.118.18 node01 192.168.118.19 node02 192.168.118.20 192.168.118.18即时master也是node 3、软件版本 [root@master ~]# cat /etc/redhat-release CentOS Linux release 7.8.2003 (Core) [root@master ~]# docker version Client: Version: 1.13.1 API version: 1.26 Package version: docker-1.13.1-161.git64e9980.el7_8.x86_64 Go version: go1.10.3 Git commit: 64e9980/1.13.1 Built: Tue Apr 28 14:43:01 2020 OS/Arch: linux/amd64 Server: Version: 1.13.1 API version: 1.26 (minimum version 1.12) Package version: docker-1.13.1-161.git64e9980.el7_8.x86_64 Go version: go1.10.3 Git commit: 64e9980

小工具chmod设置权限解读

爷,独闯天下 提交于 2020-08-11 18:16:06
1. busybox中chmod chmod用于改变文件模式。 1.1 chmod模式解读 int FAST_FUNC bb_parse_mode( const char * s, unsigned current_mode) { static const mode_t who_mask[] = { S_ISUID | S_ISGID | S_ISVTX | S_IRWXU | S_IRWXG | S_IRWXO, /* a */ S_ISUID | S_IRWXU, /* u */---------------user的意思,表示当前用户权限。 S_ISGID | S_IRWXG, /* g */---------------group的意思,表示当前组权限。 S_IRWXO /* o */---------------other的意思,表示其他用户权限,不属于本组。 }; static const mode_t perm_mask[] = { S_IRUSR | S_IRGRP | S_IROTH, /* r */ S_IWUSR | S_IWGRP | S_IWOTH, /* w */ S_IXUSR | S_IXGRP | S_IXOTH, /* x */ S_IXUSR | S_IXGRP | S_IXOTH, /* X -- special -- see below *

Kubernetes 学习5 kubernetes资源清单定义入门

五迷三道 提交于 2020-08-11 05:24:55
一、kubernetes是有一个restful风格的 API,把各种操作对象都一律当做资源来管理。并且可通过标准的HTTP请求的方法 GET,PUT,DELETE,POST,等方法来完成操作,不过是通过相应的命令反馈在kubectl 之上,如kubectl run,get,edit,...。 二、k8s常用的资源实例化后我们称之为对象。k8s相关的核心资源如下。   1、workload(工作负载型资源对象):Pod,ReplicaSet,Deployment,StatefulSet,DaemonSet,Job,Cronjob...   2、Service,Ingress 服务发现和负载均衡有关 ....   3、Volume 配置与存储。 现在的k8s版本还支持基于CSI,容器存储接口来支持各种各样的存储卷。我们还有另外两种特殊类型的存储卷。     a、ConfigMap :用来当配置中心使用的资源     b、Secret:和ConfigMap 功能相同但是用来保存敏感数据。     c、DownwardAPI:把外部环境中的信息输出给容器   4、集群级的资源     a、Namespace,Node,Role(名称空间级的资源),ClusterRole,RoleBinding,ClusterRoleBinding   5、元数据型资源     a、HPA     b

编译安装busybox

非 Y 不嫁゛ 提交于 2020-08-08 19:07:02
下载busybox x86可直接下载,运行 http://www.busybox.net/downloads/binaries/1.31.0-defconfig-multiarch-musl/ arm+KylinV4.0.2需要编译安装 apt install atpitude aptitude install libncurses5-dev 下载源码:make menuconfig;选择Build Busybox as a static binary(no shared libs) make && make install mips+NeoKylinV7需要编译安装 yum -y install ncurses* make menuconfig;选择Build Busybox as a static binary(no shared libs) yum install -y glibc-n32-static.mips64el yum install -y glibc-static.mips64el make && make install 链接: https://pan.baidu.com/s/1EeGv6Hqr5HH1MS-D_OhzIA 提取码:rkt9 来源: oschina 链接: https://my.oschina.net/u/4394252/blog/4285382

netstat实现原理

橙三吉。 提交于 2020-08-08 18:19:38
因为最近接手的项目是基于嵌入式Linux openwrt的,一开始以为会跟之前的服务器开发没什么大的区别,但是遇到问题去分析的时候才发现,工具链还是有些差别的,openwrt的netstat是属于一个叫做busybox的工具集的,这个工具集是专门提供给嵌入式Linux,它的参数很简单,居然没有Linux下netstat的-p选项,因此当我想查看是哪些进程在监听哪些端口时,发现只能查看有哪些监听端口,无法得知是属于哪个进程的,lsof也没有-i选项。 但是有时候排查问题又必须知道哪个进程监听了某个端口,因此就想搞清楚Linux下的netstat是怎么实现可以查看监听端口属于哪个进程呢。 首先想法就是去下载busybox的源代码,但是感觉代码太多了,费时费力,于是灵机一动想到Linux下的另一个工具strace(追踪程序调用的系统调用),通过strace来查看netstat执行时都做了什么操作。 谢谢@Dlemon的提示,特别说明一下: 只有当netstat加了-p参数需要展示进程id时才会有下面getdents这个函数调用,因为此时需要展示进程id,而/proc/net/tcp或者/proc/net/udp中没有包含进程id,只能去/proc目录下遍历。 截取了strace输出的某一段,可以看到,调用open以及readlink遍历了/proc/3055/fd/目录下的所有文件

Docker 之NameSpace与Cgroup

我们两清 提交于 2020-08-07 20:59:07
一、比较docker容器技术与传统虚拟化技术 Docker容器技术是一个与传统的虚拟化技术有些本质上的差别,传统的虚拟化技术,是站硬件物理资源的基础上,虚拟出多个OS,然后在OS的基础上构建相对独立的程序运行环境,而Docker则是在OS的基础上进行虚拟,所以,Docker轻量很多,因此其资源占用、性能消耗相比传统虚拟化都有很大的优势。 docker容器很快,启动和停止可以在秒级实现,比传统的虚拟化技术要快很多,docker核心解决的问题是利用容器来实现类似VM的功能,从而节省更多的硬件资源,docker容器除了运行其中的应用之外,基本不消耗额外的系统资源,从而在保证性能的同时,减小系统开销,同时,它还可以达到“一次封装,到处运行”的目的。 Docker和传统虚拟化的区别如下: 特性 Docker容器 传统虚拟化技术 启动速度 秒级 分钟级 隔离性 资源限制 完全隔离 性能 接近原生 弱于 计算机能力消耗 几乎无 损耗50%左右 系统支持量(单机) 上千个 几十个 Docker和传统虚拟化的架构上的区别比较图如下: 二、NameSpace和Cgroup的概念与作用 Docker中有三个核心概念,分别是镜像、容器、仓库。而镜像的概念主要就是把运行环境和业务代码进行镜像打包,每个镜像都会存在多个“层”,镜像层都是只读的,不能往里写数据,如果想要写,就需要在其基础之上启动成一个容器,