Linux_Docker

docker

2021-08-06  本文已影响0人  Markz__

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 ....'

上一篇下一篇

猜你喜欢

热点阅读