docker 简介

Posted virgosnail

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了docker 简介相关的知识,希望对你有一定的参考价值。

容器是一种沙盒技术。将应用部署到沙盒中,应用之间有了边界,不至于彼此之间相互干扰。

  容器技术的核心功能,就是通过约束和修改进程的动态表现,从而为其创造出一个“边界”。

  对于 Docker 等大多数 Linux 容器来说,Cgroups 技术是用来制造约束的主要手段,而 Namespace 技术则是用来修改进程视图的主要方法。

Namespace 的作用是“隔离”,它让应用进程只能看到该 Namespace 内的“世界”;而 Cgroups 的作用是“限制”,它给这个“世界”围上了一圈看不见的墙。这么一折腾,进程就真的被“装”在了一个与世隔绝的房间里

NameSpace

  Namespace 技术实际上修改了应用进程看待整个计算机“视图”,即它的“视线”被操作系统做了限制,只能“看到”某些指定的内容

  Docker运行时,本质上还是宿主机上的一个进程。不过在创建进程时,通过 NameSpace 机制将这个进程进行了隔离,它只能看见我们想让它看见的视图。
  比如PID,Docker里面的进程PID就是1,但是在宿主机上,它的进程pid并没有改变,通过NameSpace 机制还可以实现Mount,UTS,IPC,NetWork,User 等信息的隔离效果。
  让进程看见指定的进程,挂载点,网络,用户等信息。

  镜像只是提供了一套镜像文件系统中的各种文件,而各种内核相关的模块或者特性支持,完全依赖于宿主机。

所以,Docker 容器这个听起来玄而又玄的概念,实际上是在创建容器进程时,指定了这个进程所需要启用的一组 Namespace 参数。这样,容器就只能“看”到当前 Namespace 所限定的资源、文件、设备、状态,或者配置。而对于宿主机以及其他不相关的程序,它就完全看不到了。

  容器只是一种特殊的进程。

Cgroups

  Linux Cgroups 的全称是 Linux Control Group。它最主要的作用,就是限制一个进程组能够使用的资源上限,包括 CPU、内存、磁盘、网络带宽等等。
  它就是一个子系统目录加上一组资源限制文件的组合,实现对进程资源的限制。

  blkio,为???块???设???备???设???定???I/O 限???制,一般用于磁盘等设备;
  cpuset,为进程分配单独的 CPU 核和对应的内存节点;
  memory,为进程设定内存使用的限制

以上是关于docker 简介的主要内容,如果未能解决你的问题,请参考以下文章

markdown [Docker] Docker片段列表和命令#linux #docker #snippets

Android 逆向Linux 文件权限 ( Linux 权限简介 | 系统权限 | 用户权限 | 匿名用户权限 | 读 | 写 | 执行 | 更改组 | 更改用户 | 粘滞 )(代码片段

Docker 简介

markdown docker-compose片段

sh Docker片段

SpringCloud系列十一:SpringCloudStream(SpringCloudStream 简介创建消息生产者创建消息消费者自定义消息通道分组与持久化设置 RoutingKey)(代码片段