zoukankan      html  css  js  c++  java
  • 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
    

  • 相关阅读:
    C# 类 (7)
    C# 类 (6) -继承
    C# 类 (5)
    c# 类(4)
    C# 类(3)
    c# 类(2)
    C# 类 (1)
    C# 零碎知识点
    VINS_Fusion 初始化过程
    视觉SLAM(一)预备课程与基础知识
  • 原文地址:https://www.cnblogs.com/dance-walter/p/8456920.html
Copyright © 2011-2022 走看看