BusyBox

docker网络 存储卷 Dockerfile 私有registry

我与影子孤独终老i 提交于 2020-11-02 04:56:14
1.bridge模式 docker run --name bu1 -it --network bridge --rm busybox # 相当于 docker run --name bu1 -it --rm busybox # 默认是bridge docker run --name bu1 -it --network none --rm busybox # 不给容器创建网络 docker run --name bu2 -it -h linux-bu2 --rm busybox # 设置主机名 --dns 114.114.114.114 # 自行设置dns --dns-search ilinux.io # 设置dns搜索域 --add-host www.mageedu.com:1.1.1.1 # 向容器/etc/hosts中添加主机解析 想要让外部能访问容器,添加静态路由是不实用的,因为外部的主机太多了,那么就需要将容器"发布"、"暴露"出去 docker pull nginx docker run --name myweb --rm -p 80 nginx # 映射到物理机的0.0.0.0的随机端口 docker port myweb iptables -t nat -vnL # -p选项,docker自动帮你生成dnat规则 tcp dpt:32768 to:172.17.0.2

50.Linux-分析ifconfig到内核的调用过程,实现内核启机自动设MAC地址(原)

南楼画角 提交于 2020-10-22 22:37:43
内核版本: Linux version 3.10.14 1.由于每次开发板开机的网卡eth0的物理地址都是随机的. 然后在网上找到可以通过命令行实现设置mac物理地址: ifconfig eth0 down ifconfig eth0 hw ether 1234567890ab ifconfig eth0 up 然后带着好奇,想看看命令行ifconfig是如何与内核交互的,想试试 如何直接通过内核自动设置MAC . 2.分析介绍 因为ifconfig是命令,代码位于busybox,不过我们在内核的documentation目录下找到了ifconfig介绍,代码介绍文件位于: documentation\networking\ Ifenslave.c 2.1 如下图所示,对应ifconfig eth0 down和ifconfig eth0 up的函数就是: 比如,当我们敲 ifconfig eth0 down 时,实则就是调用: set_if_down( " eth0 " , master_flags.ifr_flags); 该文件除了上图外,还有以下常用函数: set_if_addr(); // 设置地址(包括IP,掩码,广播,目的地) set_master_hwaddr(); // 设置mac物理地址 接下来我们以eth0为例,来跟踪 ifconfig up/down 和

矿机板EBAZ4205-ZYNQ7010/(z7035) linux开发笔记2---编译u-boot、kernel(内核)、和文件系统(ramfs&rootfs)

僤鯓⒐⒋嵵緔 提交于 2020-10-20 04:50:53
前言: 大家好,今天小编我又要来水一波了(linux大神们请绕道,勿喷,在此谢过大神们的不喷之恩)。本人是linux小白,但是渐渐地对ZYNQ的linux产生了及其浓厚的兴趣,因为脑子不好使,经常记不住东西,所以希望通过博客的形式记录一下,以后忘记了方便回过头来看看。前面都是废话,可以不用看。。。(回到正题)今天我们要水的就是ZYNQ 的uboot生成、编译;内核的下载,生成,编译;文件系统的制作。 准备: 首先我们搞linux必备的除了工具就是源码,我的工具就是一台装有Ubuntu14.04的PC机,一块矿机板卡(号:EBAZ4205)/(我暂时先用的z7035),一张TF卡(容量最好大于4G,因为我用的文件系统比较大)(我暂时用z7035的QSPI和EMMC),一个读卡器,一个USB转TTL,电源12V,上位机软件puTTY,当然最重要的还有源码(本人用的不是petalinux,不是petalinux,不是petalinux,重要的事情说3遍。用的Xilinx官方github的原生态: uboot:https://github.com/Xilinx/u-boot-xlnx/tree/xilinx-v2018.3 内核kernel:https://github.com/Xilinx/linux-xlnx 设备树库devicetree:https://github.com

Kubernetes学习笔记(二):部署托管的Pod -- 存活探针、ReplicationController、ReplicaSet、DaemonSet、Job、CronJob

落花浮王杯 提交于 2020-10-10 08:08:15
存活探针 Kubernetes可以通过存活探针(liveness probe)检查容器是否存活。如果探测失败,Kubernetes将定期执行探针并重新启动容器。 官方文档请见: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/ 存活探针分为三种: exec:在容器内执行任意命令,并检查命令的退出状态码,为0则成功,否则失败。 httpGet:执行http get请求,http code大于等于200并且小于400表示成功,否则失败。 tcp:尝试与指定端口建立socket连接,建立成功则探测成功,否则失败。 exec探针 从官网复制个yaml,但是要将image从k8s.gcr.io/busybox更改为busybox。 -> [root@kube0.vm] [~] cat exec-liveness.yaml apiVersion: v1 kind: Pod metadata: labels: test: liveness name: liveness-exec spec: containers: - name: liveness image: busybox args: - /bin/sh - -c - touch /tmp

Alpine Linux 使用简介

耗尽温柔 提交于 2020-10-07 05:18:59
一、Alpine简要介绍 Alpine 的意思是“高山的”,比如 Alpine plants高山植物,Alpine skiing高山滑雪、the alpine resort阿尔卑斯山胜地。 Alpine Linux 网站首页注明“Small!Simple!Secure!Alpine Linux is a security-oriented, lightweight Linux distribution based on musl libc and busybox.”概括了以下特点: 1、 小巧: 基于Musl libc和busybox,和busybox一样小巧,最小的Docker镜像只有5MB; 2、 安全 :面向安全的轻量发行版; 3、 简单 :提供APK包管理工具,软件的搜索、安装、删除、升级都非常方便。 4、适合 容器使用 :由于小巧、功能完备,非常适合作为容器的基础镜像。 <!--more--> 二、Alpine更新国内源 # Alpine的源文件为: /etc/apk/repositories, # 默认的源地址为: http://dl-cdn.alpinelinux.org/ 可以编辑源文件 /etc/apk/repositories, 采用国内阿里云的源,文件内容为: https://mirrors.aliyun.com/alpine/v3.9/main/ https

k8s-ephemeral和init容器

邮差的信 提交于 2020-08-20 01:00:30
  截止到目前k8s1.18版本,k8s已经支持四种类型的container:标准容器,sidecar容器,init容器,ephemeral容器。 一:ephemeral容器 1.1.什么是ephemeral容器 临时容器与其他容器的不同之处在于,它们缺少对资源或执行的保证,并且永远不会自动重启,因此不适用于构建应用程序。临时容器使用与常规容器相同的 ContainerSpec 段进行描述,但许多字段是不相容且不允许的。 临时容器没有端口配置,因此像 ports , livenessProbe , readinessProbe 这样的字段是不允许的。 Pod 资源分配是不可变的,因此 resources 配置是不允许的。 有关允许字段的完整列表, 1.2.ephemeral容器的用途   当由于 容器崩溃或容器镜像不包含调试实用程序 而导致 kubectl exec 无用时, 临时容器对于交互式故障排查很有用 。   尤其是, distroless 镜像 能够使得部署最小的容器镜像,从而减少攻击面并减少故障和漏洞的暴露。由于 distroless 镜像不包含 shell 或任何的调试工具,因此很难单独使用 kubectl exec 命令进行故障排查。 使用临时容器时,启用 进程命名空间共享 很有帮助,可以查看其他容器中的进程。 1.3.使用ephemeral容器   临时容器是使用

Kubernetes的Volume存储卷

丶灬走出姿态 提交于 2020-08-19 09:34:59
Kubernetes的Volume (1).Volume是Pod中能够被多个容器访问的共享目录。 (2).Volume的生命周期独立于容器,Pod中的容器可能被销毁或重建,但Volume会被保留 (3).Volume支持多种类型的mount,包括:emptyDir、hostPath、NFS、Ceph、gcePersistentDisk、 awsElasticBlockStore; 1.emptyDir 一个emptyDir Volume是在Pod分配到Node时创建的。其实一个emptyDir Volume实际上是宿主机上的临时空目录,不过这个空目录是Kubernetes自动分配的一个目录。当Pod从Node上移除时,emptyDir中的数据也会永久删除。但对于容器来说是持久的。也就说emptyDir的生命周期与Pod是一致的。 emptyDir有哪些用途呢? 临时空间;例如用于某些应用程序运行时所需的临时目录,且无需永久保留 长时间任务的中间过程CheckPoint的临时保存目录 一个容器需要从另一个容器抽个获取数据的目录(例如:日志收集,一个容器写日志,一个容器读日志) 验证一:Pod内的多个共享目录 如下面的例子: cat emptydir.yaml apiVersion: v1 kind: Pod metadata: name: emptydir spec:

迅为IMX6ULL开发板Linux蜂鸣器实验

会有一股神秘感。 提交于 2020-08-14 12:20:42
在上一章讲解了添加 LED 灯驱动的整个流程和测试结果,这一章在来看一下蜂鸣器的驱动,蜂鸣器和 LED 灯的驱动其实是一样的,都是控制 GPIO 引脚输出高低电平,在本章继续学习一下蜂鸣器的驱动,也算 是在巩固一遍驱动的添加流程。 37.1 蜂鸣器设备注册流程 蜂鸣器设备注册流程 和 LED 灯驱动注册一样,蜂鸣器注册流程也分为下面几步: 5 硬件原理图分析,确定控制 LED 的 GPIO 信息。 6 根据 GPIO 信息在设备树文件中添加 pinctrl 信息 7 在设备树中创建 LED 的设备节点,并加入 GPIO 信息 8 编写 LED 设备驱动程序 接下来根据上面这四步来添加一下蜂鸣器的设备驱动。 2 37.2 蜂鸣器硬件原理图分析 蜂鸣器一端接 VSYS 电压 (3.3V),另一端接控制引脚,只不过多了一个 三极管 。控制引脚为:SNVS_TAMPER1。 3 37.3 修改设备树文件 修改设备树文件 37.3.1 添加 pinctrl 信息 在 i.MX6UL 终结者开发板中使用 SNVS_TAMPER1 这个引脚来控制蜂鸣器设备。打开 topeet_emmc_4_3.dts 文件在 iomux 节点的 imx6ul-evk 子节点下创建一个名为“pinctrl_beep”的子节点,具体内容如下: pinctrl_beep: gpio-beep { fsl,pins =