美文网首页
Docker容器的本质

Docker容器的本质

作者: 阿里加多 | 来源:发表于2023-01-22 10:41 被阅读0次
image.png

先说结论:Docker容器的本质是一个特殊的进程。

学过操作系统的大家应该知道进程其实是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位。

比如我们电脑上运行的微信程序是一个进程,运行的开发工具(intellj idea)也是一个进程。其实在操作系统视角来看,处于运行时的Docker容器本身也是一个进程,只是这个进程比较特殊,下面我们就来说说他特殊在哪里

针对Linux容器来说,为了实现容器间资源隔离与限制,其对容器进程做了下面的处理

  • 第一:其使用Linux提供的NameSpace技术来修改Docker容器进行时视图,实现每个容器有相互隔离的网络命名空间、进程空间等;比如你在Docker容器内查看进程列表,会发现容器自身是1号进程,其并看不到操作系统视角的其他进程,比如每个docker容器看到的都是各自独立的文件系统,相互之间不会影响。

  • 第二:使用Linux提供的NameSpace技术仅仅解决了容器之间的隔离问题,但是还是没法控制每个容器对资源使用的限制问题,比如还是无法控制每个容器可以使用多少cpu和内存等资源。所以还需要使用Linux的Cgroup技术来实现容器对资源使用的限制。Linux Cgroups 的全称是 Linux Control Group。它最主要的作用,就是限制一个进程组能够使用的资源上限,包括 CPU、内存、磁盘、网络带宽等等。

总结:针对Linux内核的容器,比如Docker容器来说,其本质是一个特殊的进程。相比其他进程其特殊在基于NameSpace技术实现了进程的视图的隔离,基于Cgroup技术实现了资源使用的限制,从而实现了容器之间的资源隔离与限制。

相关文章

  • docker入门(一):MacOS上搭建docker简单应用栈(

    一、What & why docker? 1.1 docker是什么? docker 的本质是一种容器引擎,即co...

  • Docker 资源隔离

    概述 Docker 容器本质上是宿主机上的进程。Docker 通过 namespace 实现资源隔离。 Linux...

  • Cgroup和Namespace 入门实践

    一、docker容器技术与传统虚拟化技术的比较 Docker容器技术是一个与传统的虚拟化技术有些本质上的差别,传统...

  • 常用docker命令

    docker进入容器: docker查看容器ip docker重启容器 docker 启动容器 docker复制宿...

  • docker镜像概念

    docker和虚拟机的本质区别 Docker守护进程可以直接与主操作系统进行通信,为各个Docker容器分配资源;...

  • docker 常用命令

    运行中的容器docker ps 查看所有容器docker ps -a 进入容器docker -it 容器id ...

  • docker 安装

    前言 docker是容器的代表,容器本质上是将程序隔离打包,docker解决了软件开发和运维差异性问题官网上这样描...

  • docker

    docker 容器 新建容器docker create it ... 查看本机上的容器docker ps -a ...

  • Docker最新版19.03 详细教程

    Docker 容器本质上是宿主机上的一个进程。Docker 通过 namespace 实现了资源隔离,通过 cgr...

  • Docker常用容器启动命令

    docker启动mysql容器 docker启动nginx容器 docker启动redis容器 docker启动p...

网友评论

      本文标题:Docker容器的本质

      本文链接:https://www.haomeiwen.com/subject/gkrchdtx.html