博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Docker底层技术了解(3)
阅读量:5336 次
发布时间:2019-06-15

本文共 913 字,大约阅读时间需要 3 分钟。

  • Docker使用Go语言实现。
  • Docker利用linux内核的几个特性来实现功能:
    • 利用linux的命名空间(Namespaces)
    • 利用linux控制组(Control Groups)
    • 利用linux的联合文件系统(Union File Systems)

这也就意味着Docker只能在linux上运行。

在windows、MacOS上运行Docker,其实本质上是借助了虚拟化技术,然后在linux虚拟机上运行的Docker程序。

  • 容器格式( Container Format )
    • Docker Engine将namespace、cgroups、UnionFS进行组合后的一个package,就是一个容器格式(Container Format)。Docker通过对这个package中的namespace、cgroups、UnionFS进行管理控制实现容器的创建和生命周期管理。
    • 容器格式(Container Format)有多种,其中Docker目前使用的容器格式被称为libcontainer。

 

Namespaces(命名空间):为Docker容器提供操作系统层面的隔离

  • 进程号隔离:每一个容器内运行的第一个进程,进程号总是从1开始起算
  • 网络隔离:容器的网络与宿主机或其他容器的网络是隔离的、分开的,也就是相当于两个网络
  • 进程间通隔离:容器中的进程与宿主机或其他容器中的进程是互相不可见的,通信需要借助网络
  • 文件系统挂载隔离: 容器拥有自己单独的工作目录
  • 内核以及系统版本号隔离:容器查看内核版本号或者系统版本号时,查看的是容器的,而非宿主机的

Control Groups(控制组-cgroups):为Docker容器提供硬件层面的隔离

  • 控制组能控制应用程序所使用的硬件资源。
  • 基于该性质,控制组帮助docker引擎将硬件资源共享给容器使用,并且加以约束和限制。如控制容器所使用的内存大小。

Union File Systems(联合文件系统--UnionFS):利用分层(layer)思想管理镜像和容器

转载于:https://www.cnblogs.com/lirunsheng/p/10981763.html

你可能感兴趣的文章
Python3编写Windows服务程序
查看>>
麻省理工MaKey MaKey的电路板,触控无处不在,很强大。
查看>>
关于leap motion的原理和疑点
查看>>
Web前端,高性能优化
查看>>
【转载】Recommendations with Thompson Sampling (Part II)
查看>>
UML
查看>>
Javascript中decodeURI()与decodeURIComponent()区别
查看>>
redis设置开机启动
查看>>
Web GIS
查看>>
SpringBoot搭建简单的web项目及Echarts地图demo
查看>>
Spark随笔(三):straggler的产生原因
查看>>
android中TextView中文字体粗体的方法
查看>>
sealed(C# 参考)
查看>>
Golang Import使用入门
查看>>
postgresql 获取主键字段
查看>>
GNU libmicrohttpd 0.9.24 发布
查看>>
响应式网站
查看>>
Less环境搭建
查看>>
openstack trove mongodb配置项
查看>>
poj 3481 Double Queue 数据结构 STL
查看>>