`
maosheng
  • 浏览: 568225 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Docker 容器技术

阅读更多
从操作系统功能上看,Docker底层依赖的核心技术主要包括Linux操作系统的命名空间(Namespaces)、控制组(Control Groups)、联合文件系统(Union File Systems)和Linux虚拟网络支持。

基本架构

Docker 采用了标准的C/S架构,包括服务端和客户端两大部分。

服务端:

Docker daemon一般在宿主主机后台运行,作为服务端接受来自客户端的请求,并处理这些请求(创建、运行、分发容器)。在设计上,Docker daemon是一个非常松耦合的架构,通过专门的Engine模块来分发管理各个来自客户端的任务。

客户端:

Docker客户端则为用户提供一系列可执行命令,用户用这些命令实现与服务器端的交互。





命名空间

命名空间(Namespace)是Linux内核针对实现容器虚拟化而引入的一个强大特性。每个容器都可以拥有自己单独的命名空间,运行在其中的应用都像是在独立的操作系统中运行一样。命名空间保证了容器之间彼此互不影响。

在操作系统中,包括内核、文件系统、网络、PID、UID、IPC、内存、硬盘、CPU等资源,所有的资源都是应用进程直接共享的。

Linux通过命名空间,让某些进程在彼此隔离的命名空间中运行。虽然,这些进程都共用一个内核和某些运行时环境,但是彼此是不可见的----它们都认为自己是独占系统的。

进程命名空间
网络命名空间
IPC命名空间
挂载命名空间
UTS命名空间
用户命名空间

控制组

控制组(CGroups)是Linux内核的一个特性,主要用来对共享资源进行隔离、限制、审计等。只有能控制分配到容器的资源,Docker才能避免多个容器同时运行时的系统资源竞争。

控制组提供如下功能:
资源限制(Resource Limiting)可以设置为不超过设定的内存限制。
优先级(Prioritization)通过优先级让一些组有限得到更多的CPU等资源。
资源审计(Accounting)用来统计系统实际上把多少资源用到合适的目的上,可以使用cpuacct子系统记录某个进程组使用的CPU时间。
隔离(Isolation)为隔离名字空间,这样一个组不会看到另一个组的进程、网络连接和文件系统。
控制(Control)控制挂起、恢复和重启动等操作。

联合文件系统

联合文件系统(UnionFS)是一种轻量级的高性能分层文件系统,它支持将文件系统中的修改信息作为一次提交,并层层叠加,同时可以将不同目录挂载到同一个虚拟文件系统下。联合文件系统是实现Docker镜像的技术基础。镜像可以通过分层来进行继承。

当Docker利用镜像启动一个容器时,将利用镜像分配文件系统并且挂载一个新的可读写的层给容器,容器会在这个文件系统中创建,并且这个可读写的层被添加到镜像中。

Docker网络实现

Docker的网络实现就是利用了Linux上的网络命名空间和虚拟网络设备(特别是veth pair)。

要实现网络通信,机器需要至少一个网络接口(物理接口或虚拟接口)与外界相通,并可以收发数据包。

Docker中的网络接口默认都是虚拟的接口。虚拟接口的最大优势就是转发效率极高。这是因为Linux通过在内核中进行数据复制来实现虚拟接口之间的数据转发,即发送接口发送缓存中的数据包将被直接复制到接收接口的接收缓存中,而无需通过外部物理网络设备进行交换。对于本地系统和容器内系统来看,虚拟接口跟一个正常的以太网卡相比并无区别,只是它速度要快的多。

Docker容器网络就很好地利用了Linux虚拟网络技术。它在本地主机和容器内分别创建一个虚拟接口,并让他们彼此连通(这样的一对接口叫做veth pair)。





容器基于操作系统内核自带能力早已存在,基于linux内核已实现的轻量级高性能资源隔离机制(cgroups,namespace,lxc等)。

虚拟机是操作系统级别的资源隔离,容器本质上是进程级别的资源隔离,所以容器可以秒级启动,比VM要轻量很多。













  • 大小: 21.8 KB
  • 大小: 19.8 KB
分享到:
评论

相关推荐

    docker 容器技术ppt

    docker内部培训的PPT,简介了docker容器技术的强大。为什么要使用docker容器技术。

    每天5分钟玩转Docker容器技术.pdf

    每天5分钟玩转Docker容器技术.pdf 每天5分钟玩转Docker容器技术.pdf

    Docker容器技术在网络安全实验室的应用研究.pdf

    "Docker容器技术在网络安全实验室的应用研究" 本文研究了Docker容器技术在网络安全实验室中的应用,旨在解决当前网络安全实验室设备和授权数量有限的问题,无法满足教学需求。通过使用Docker容器技术,建立了一个...

    每天5分钟玩转Docker容器技术(高清版)

    《每天5分钟玩转Docker容器技术》是一个有关容器技术的教程,有下面两个特点: 系统讲解当前最流行的容器技术 从容器的整个生态环境到各种具体的技术,从整体到细节逐一讨论。 重实践并兼顾理论 从实际操作的角度...

    docker容器入门与实践期末考试总复习.docx

    在本节总结中,我们将详细介绍 Docker 容器技术的基本概念、优点、架构、Namespace 和 Cgroup 等关键技术点,并总结 Docker 容器技术在实际应用中的价值。 容器技术解决了环境依赖问题,实现了跨平台分发使用。...

    完整版 每天5分钟玩转Docker容器技术

    完整版 每天5分钟玩转Docker容器技术,高清 pdf,欢迎交流学习!

    虚拟化与Docker容器技术.pdf

    虚拟化与 Docker 容器技术 虚拟化技术是指在计算机中创建虚拟的计算机环境,通过虚拟化可以在一台物理机器上运行多个操作系统。虚拟化技术可以分为两类:系统虚拟化和进程虚拟化。系统虚拟化是指虚拟化整个系统,...

    每天5分钟玩转Docker容器技术

    每天5分钟玩转Docker容器技术

    9 Docker容器技术.pdf

    9 Docker容器技术

    每天5分钟玩转Docker容器技术.CloudMan(详细书签).zip

    每天5分钟玩转Docker容器技术.CloudMan(详细书签).zip 每天5分钟玩转Docker容器技术.CloudMan(详细书签).zip

    Docker容器技术-Docker-compose使用案例.pptx

    【Docker容器技术】 Docker容器技术是一种轻量级的虚拟化技术,它不是通过模拟硬件来隔离操作系统,而是利用Linux内核的资源隔离特性,如命名空间(Namespaces)和控制组(Cgroups),来实现应用级别的隔离。Docker...

    Docker容器技术分享 -.pptx

    Docker容器技术分享,Docker相关介绍,用于技术分享的PPT

    Docker容器技术-走近容器世界.pptx

    Docker容器技术 Docker容器技术是近年来最火热的技术之一,它可以将任何类型的应用程序及相关依赖打包成为一个标准的、轻量的、便携的、独立的集装箱(也就是容器),它是一种轻量级的操作系统级虚拟化技术。 ...

    docker容器技术基础入门培训视频.rar

    01- dockers容器技术基础入门zip,网盘文件,永久链接 02- Docker基础用法zp 03- Docker镜像管理基础zp 04容器虚拟化网络概述zp 05- Docker容器网络zip 06- Docket存储卷,zip 07- Dockerfile详解zip 08- Dockerfile...

    202x年docker容器技术初探与实践(专业完整版).pdf

    202x年docker容器技术初探与实践(专业完整版).pdf

    docker容器技术文档

    Docker 容器技术文档 Docker 容器技术是一种轻量级的操作系统虚拟化技术,能够在隔离的环境中运行多个应用程序。下面是 Docker 容器技术的详细知识点: 安装 Docker 在安装 Docker 之前,需要先安装操作系统。...

    Docker容器技术-数据卷的类型与区别.pptx

    Docker 容器技术中的数据卷类型和区别 Docker 容器技术中的数据卷是一种用于数据持久化和共享的机制。数据卷是 Docker 容器技术中的一种核心概念,它允许容器之间共享数据,并且可以将数据持久化到宿主机文件系统中...

Global site tag (gtag.js) - Google Analytics