M1 macbook上安装docker 编译内核 并使用qemu启动内核。 将initramfs-busybox-arm64.cpio.gz文件拷贝到/test/qemu-7.2.0-rc1/build/aarch64-softmmu/目录下。系统启动了,停留在了一个命令行界面,同时可以查看到系统内核是5.13.18版本,这样实现了在容器中使用qemu把内核5.13.18跑起来了。将之前编译好的内核镜像也拷贝到/test/qemu-7.2.0-rc1/build/aarch64-softmmu/目录下。编译成功后会在_install/bin/目录下生成busybox。
制作自己的镜像并且推送到docker hub上去。 docker tag centos8:cgdb(本地镜像)zhangyi0833/centos8:cgdb(新添加到远端的镜像)2、在本机上制作自己已经安装了自己想要的工具的镜像,比如我这里安装了cgdb在centos8上面。docker commit -m="提交的描述信息" -a="镜像作者" 正在运行的容器ID 新的镜像名字:新的镜像TAG。使用docker push 命令将新添加的镜像上传到docker hub。Username: rhl (docker hub上注册的账号)
如何在Linux上通过cgroup限制一个进程使用CPU和内存 Cgroup 实现了对系统资源的细粒度控制和管理,可以将一组进程放入同一个 Cgroup 中,并对该 Control Group 中的所有进程共享相应的资源配额。这两行代码告诉内核同时运行的程序切换超时参数,即当前可占用 10ms 内核时间,然后必须让出时间,并等待 200ms 内核时间过后再占用,以达到限制CPU使用的目地。2. 创建一个名为 mycg 的控制组,以限制该组中的进程的 CPU 占用率和内存使用量。说明测试程序的CPU使用率已经被成功限制在10%以内,而内存占用不会超过50MB。
MAC book M1上安装docker,然后安装centos 背景:按照往常逻辑下载了virtualbox 但是在macbook M1 上安装时候发现报错,这个时候才恍然M1是arm CPU,目前virtual box不支持。于是想了另个办法,我在mac上安装docker然后再在通过docker拉取centos镜像包,然后通过docker启动centos容器当成对应的虚拟机,不一样能达到在一台mac上启动多个虚拟机的目的吗?于是在macbook上先安装docker.1、下载和安装dockerdocker下载链接如下:Docker Desktop for A..
go语言hello world vim hello_world.gopackage main //package main指明这个文件属于那个包,名为main的包比较特殊,他用来定一个独立的可执行程序。//import告诉编译器此源文件需要倒入哪些包,必须精确的倒入所需要的包,不能少导,这点和C语言不一样,倒入过多导致编译不过。import( "fmt")func main(){ //这个{必须和main在同一行否则爆错 fmt.Println("hello world!")}编译go文件:go bu
单个虚拟机部署三个etcd实例/一个ectd实例 1、安装etcd:yum install etcd2、查看etcd版本:etcd --version3、在一个目录下创建三个文件(etcd1_conf.yml,etcd2_conf.yml,etcd2_conf.yml)和三个文件夹(etcd1/data,etcd2/data,etcd3/data)分别存放三个etcd实例的配置文件和其对应的运行目录。etcd1_conf.yml内容name: etcd1data-dir: /home/test/etcd_conf/etcd1..
C/C++代码中调用golang的接口。 一、C代码调用go接口。1、前提是golang已经可以提供一些接口,此时需要在C代码中调用这些接口。或者第三方模块是golang写的,则需要把第三方编译成so文件,然后再C代码汇总访问其暴露出来的接口。比如这里我让golang代码提供函数功能,并且将自己编译成so动态链接库,在C代码中调用这个库中的接口。1.1、 golang提供的接口,文件名:autolibary.go,注意这里“//export Func”这句话一定要有,否则一会链接找不到接口。package mainimpor.
启动一个docker并且将宿主机的目录挂在到docker内部的目录下 1、首先需要 从远处pull docker的启动镜像文件,这个一般放在了/var/lib/docker/目录下。如果想查看当前机器上有哪些镜像可以通过docker images命令查看比如这里我pull一个镜像名字叫opencurve/curvebuild,tag叫centos8。注意这两个东西后续启动docker时候会用到。2、现在镜像有了,则可以根据这个镜像启动docker了。可以将宿主机的目录和希望在docker中的目录进行关联从而达到共享的目的,需要通过命令:docker run -
一个c++ makefile .SUFFIXES:.PHONY: all cleanCXX := g++CXXFLAGS := -Wall -g -std=c++11INCLUDES := -Iinclude#LIBS := -lmTARGET := demoSRCDIR := ./TESTDIR := ./SRCOBJS := $(patsubst %.cpp, %.o, $(wildcard $(SRCDIR)/*.cpp))TESTOBJS := $(patsubst %.cpp, %.o, $(wild.
grpc编译安装 1、如果国外网速不好,则可以使用国内镜像下载:git clone https://gitee.com/githubplus/grpc.git直接用master版本肯定有点多,所以这里按照网上的查询选择了一个版本,同时设置他们对应的submodule文件,也就是对应的版本进行下载。git checkout v1.20.02、因为编译grpc需要依赖很多第三方组件,如protobuf等,则也需要将他的submodule文件改为国内镜像,这样下载也要快一些。修改.gitmodules文件[submod
Macbook安装vitualbox虚拟机(NAT)模式,Mac上通过SSH连接虚拟机。 正常情况下,MacBook以NAT方式(虚拟机属于宿主机,不能有单独的外网网络IP)安装vitualbox虚拟机时,虚拟机可以ping同宿主机,虚拟机能ping通外网的网址,如ping www.baidu.com.但是宿主机不能ping通虚拟机,也不能ssh虚拟机。如果用桥接模式(虚拟机和宿主机相当于两台独立的机器,独立的一个网段的IP)则可以相互访问。但是在宿主机有VPN的时候,需要在虚拟机中也要访问VPN的网址时候,如果用桥接的方式就不行,需要在虚拟机也要安装VPN才行。所以此时NAT模式就有用了。那么
virtualbox采用桥接模式不能ping通www.baidu.com解决方法 1、虚拟机可以ping通www.baidu.com的IP地址,但是不能直接ping通www.baidu.com网址,这个原因是由于DNS解析问题。2、增加文件/etc/resolv.conf,然后添加内容:nameserver 8.8.8.83、再次ping www.baidu.com成功了...
MacBook上virtualbox虚拟机获得和主机一样的IP网段(作为一台独立的机器使用,可以上网可以和主机相互ping通) 1、首先将虚拟机的网卡配置为桥接方式的网卡。2、virtualbox安装好centos系统后,进入系统修改配置/etc/sysconfig/network-scripts/ifcfg-enp0s3修改ONBOOT=no为ONBOOT=yes3、service network restart4、ifconfig5、主机ping 虚拟机6、虚拟机ping主机7、虚拟机上网...
先了解网络基本基础知识 1、先了解网络分层架构:网络分层主要分为两个流派:OSI 7层模型和TCP/IP 5层模型,下面一张图可以简单描述他们的共同和不同。意思就是TCP/TP为实践的网络模型,他就是吧OSI的7层模型的表示层和会话层同应用层统一了,不搞那么多虚拟吧唧的,直接整了一个应用层出来。2、实际例子:一个数据信息(比如你的照片,你的用户名和密码)是怎么通过http协议发送从一台机器发送到另一台机器的呢?3、那些动作是网卡做的?那些动作是OS操作系统做的呢?...