zoukankan      html  css  js  c++  java
  • 【docker】docker基础原理,核心技术简介

    关于docker的核心技术,就是以下的三大技术:

    1.namespaces 【命名空间】

    使用linux的命名空间实现的进程间隔离。Docker 容器内部的任意进程都对宿主机器的进程一无所知。
    除了进程相关的命名空间,还会设置与用户、网络、IPC 以及 UTS 相关的命名空间。
    
    Docker 通过命名空间成功完成了与宿主机进程和网络的隔离。
    
    虽然docker通过命名空间创建了网络隔离,但依旧需要与外界连接才能有用。
    Docker 为我们提供了四种不同的网络模式,Host、Container、None 和 Bridge 模式。【四种模式区别】
    
    默认使用bridge模式:在这种模式下,除了分配隔离的网络命名空间之外,Docker 还会为所有的容器设置 IP 地址。当 Docker 服务器在主机上启动之后会创建新的虚拟网桥 docker0,随后在该主机上启动的全部服务在默认情况下都与该网桥相连。

    2.control groups CGGroups【控制组】

    Control Groups(简称 CGroups)就是能够隔离宿主机器上的物理资源,例如 CPU、内存、磁盘 I/O 和网络带宽。

    3.union filesystem【联合文件系统】

    UnionFS 其实是一种为 Linux 操作系统设计的用于把多个文件系统『联合』到同一个挂载点的文件系统服务。
    容器和镜像的区别就在于,所有的镜像都是只读的,而每一个容器其实等于镜像加上一个可读写的层,也就是同一个镜像可以对应多个容器。
    每一个镜像层或者容器层都是 /var/lib/docker/ 目录下的一个子文件夹;在 Docker 中,所有镜像层和容器层的内容都存储在 /var/lib/docker/aufs/diff/ 目录中。
    AUFS 只是 Docker 使用的存储驱动的一种,除了 AUFS 之外,Docker 还支持了不同的存储驱动,包括 aufs、devicemapper、overlay2、zfs 和 vfs 等等,在最新的 Docker 中,overlay2 取代了 aufs 成为了推荐的存储驱动,但是在没有 overlay2 驱动的机器上仍然会使用 aufs 作为 Docker 的默认驱动。

    详细参考:http://dockone.io/article/2941

  • 相关阅读:
    python set 使用
    python判断字符串是字母 数字 大小写
    go语言中的运算符^,&
    golang 之 flag.String
    关于Mac或Linux下GO的Permission denied提示错误
    《算法竞赛进阶指南》0x05排序 POJ3784 对顶堆动态维护中位数
    大顶堆的基本操作(线性表建堆+siftup+siftdown+insert+delete)
    《算法竞赛进阶指南》0x05排序 环形均分纸牌问题
    SublimeText3配置c/c++环境
    《算法竞赛进阶指南》0x05 排序 离散化
  • 原文地址:https://www.cnblogs.com/sxdcgaq8080/p/10071828.html
Copyright © 2011-2022 走看看