• docker发展历程


    docker发展历程

    docker本身不是容器,它只是一个更加易用的前端管理器。

    最早期的容器技术概念是用chroot来实现隔离,但是chroot只是提供了对进程文件目录虚拟化的功能,不能防止进程恶意访问系统。

    直到2008年 LXC(Linux Containers"牛奶牌牛奶"),一套完整的Linux容器管理实现方案,也有如别的方案如:OpenVZ等...

    docker发展历程

    lxc --> libcontainer --> runC

    docker在起步阶段使用lxc,但发现其并不是那么好用,于是docker公司就自己把cgroups和lxc做了一个联合封装。lxc向上提供的接口做了二次封装,使其变成更易用的容器管理界面和容器管理逻辑。从而使得整个容器的使用变得更加简便了。

    容器的核心组件:

    • NameSpaces :名称空间

    仅能做到隔离,而不能做到资源分配的问题。PID,user,hostname,network都属于内核的,所以需要隔离开来。

    rootfs: 根文件系统(mount)

    PID

    user

    hostname /proc/system/hostname

    network

    ipc : 进程间通信(Inter-Process Communication)

    • Control Groups: 控制组

    他能够实现以进程为单位,来尝试着把我们的CPU的时间分配,用量分配,内存空间分配,IO用量分配以指定比例或指定数量的方式分派给多个进程。

    • Chroot : 为了安全的目的等如Selinux



    docker的重要概念

    • images : read only
    • containers : A container is a runable instance of an image. You can create,run,stop,move,or delete a container using the Docker API or CLI.
    • networks
    • volumes

      后面会有对应的博客介绍其原理

    docker 组件

    物理: http协议进行通信
    	Client 
    	daemon
    	registry
    逻辑:
    	Containers
    	Images
    	Registry
    

  • 相关阅读:
    clientHeight和offsetHeight
    bus事件总线传值
    解决英文溢出不换行
    小程序熏染可滑动动态导航
    个人样式小结
    数组删除元素
    vue封装swiper
    大佬的接口玩玩
    Java探针技术-JVM的动态agent机制:在main函数启动之后运行agent
    Java探针技术-Instrumentation与ClassFileTransformer--字节码转换工具
  • 原文地址:https://www.cnblogs.com/dance-walter/p/8456920.html
Copyright © 2020-2023  润新知