docker
1. 相关概念
容器: 英文名叫container 集装箱, 实现容器的两种技术,namespace 和cgroup , 在每个namespace中的应用看到的,都是不同的IP地址、用户空间、进程ID等。另一种是CGROUP(网络资源限制),即控制应用使用的系统资源,使一个应用只能用其中的一部分CPU和内存。镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和实例一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等;
容器镜像: 将代码和运行环境打包成的包,这样可以在开发、测试、生产这三个码头顺利迁移。镜像(Image),就相当于是一个 root 文件系统。比如官方镜像 ubuntu:16.04 就包含了完整的一套 Ubuntu16.04 最小系统的 root 文件系统;
镜像是类,容器是对象;
仓库(Repository) : 仓库可看成一个代码控制中心,用来保存镜像;
2. 常用操作
查看镜像:docker images
查看容器: docker ps
启动docker:
如跑centos, docker run -d -i -t image_id /bin/bash
Docker attach contain-id
将docker导出为镜像:docker commit contain-id centos:TAG
通过容器id导出容器:docker export xxxxx > /root/name/abc.tar
或者 docker export -o centos-4.14.131.tar 容器名
创建image : docker import centos-4.14.131.tar centos:4.14.131
拷贝文件:
docker cp /srcfiledir 96f7f14e99ab:/destfiledir
docker cp 96f7f14e99ab:/srcdir /desdir
3. 编译内核
编译内核方式一:
下载内核
https://mirrors.edge.kernel.org/pub/linux/kernel/
https://mirrors.aliyun.com/linux-kernel
找一个config文件
cd /boot/config-3.10.0-957.el7.x86_64
yum install gcc gcc-c++ flex bison openssl-devel.x86_64 libelf-dev libelf-devel elfutils-libelf-devel python3 unbound bc perf -y
解压进文件夹
Make menuconfig -> load -> 选择config文件 -> save -> .config
各个版本特性不通,使用不同版本的配置文件编译时有极大概率会
报错。
debug_info生成:
make menuconfig ( set CONFIG_DEBUG_INFO=y)
save .config
Make rpm-pkg -j48
编完后的rpm包应该在/root/rpmbuild/RPMS
编译内核方式二:
cp /boot/备份的config-xxx ./.config
make menuconfig
make -j32
make modules_install install
grub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg
grub2-set-default 'Centos Linux ....'