文档章节

Docker的底层实现所依赖的关键技术

yellowapple
 yellowapple
发布于 2014/07/26 17:21
字数 356
阅读 114
收藏 0

The underlying technology

Docker is written in Go and makes use of several Linux kernel features to deliver the functionality we've seen.

Namespaces

Docker takes advantage of a technology called namespaces to provide the isolated workspace we call the container.  When you run a container, Docker creates a set of namespaces for that container.

This provides a layer of isolation: each aspect of a container runs in its own namespace and does not have access outside it.

Some of the namespaces that Docker uses are:

  • The pid namespace: Used for process isolation (PID: Process ID).

  • The net namespace: Used for managing network interfaces (NET: Networking).

  • The ipc namespace: Used for managing access to IPC resources (IPC: InterProcess Communication).

  • The mnt namespace: Used for managing mount-points (MNT: Mount).

  • The uts namespace: Used for isolating kernel and version identifiers. (UTS: Unix Timesharing System).

Control groups

Docker also makes use of another technology called cgroups or control groups. A key to running applications in isolation is to have them only use the resources you want. This ensures containers are good multi-tenant citizens on a host. Control groups allow Docker to share available hardware resources to containers and, if required, set up limits and constraints. For example, limiting the memory available to a specific container.

Union file systems

Union file systems, or UnionFS, are file systems that operate by creating layers, making them very lightweight and fast. Docker uses union file systems to provide the building blocks for containers. Docker can make use of several union file system variants including: AUFS, btrfs, vfs, and DeviceMapper.

Container format

Docker combines these components into a wrapper we call a container format. The default container format is called libcontainer. Docker also supports traditional Linux containers using LXC. In the future, Docker may support other container formats, for example, by integrating with BSD Jails or Solaris Zones.

内容来源:https://docs.docker.com/introduction/understanding-docker/

© 著作权归作者所有

yellowapple
粉丝 4
博文 4
码字总数 1658
作品 0
东城
私信 提问
投资容器云技术能赚到钱吗?

提起云,大家应该并不陌生,我们平时经常用的百度云盘、钉钉、阿里云邮箱等都属于云服务的范畴,与这些耳熟能详的云不同的是,容器云对于大多数人来说是一个陌生的概念,很多人甚至是第一次听...

m2l0zgssvc7r69efdtj
2017/10/24
0
0
微服务集大成者——Docker

什么是Docker? Docker 是一个开源的应用容器引擎。它支持将软件、软件的依赖、以及软件的运行环境一起打包成一个镜像文件;将镜像发布出去,其他使用者可以直接使用这个镜像。 这就解决了同...

消失er
2018/08/03
0
0
5 分钟让你秒懂 Docker !

摘要: Docker从狭义上来讲就是一个进程,从广义上来讲是一个虚拟容器,其实更专业的叫法是应用容器( Application Container ),Docker进程和普通的进程没有任何区别,它就是一个普通的应用...

姬子玉
2017/12/04
0
0
5 分钟让你秒懂 Docker !【转】

Docker是啥? 打开翻译君输入Docker 结果显示码头工人,没错!码头工人搬运的是集装箱,那么今天要讲的Docker其操作的也是集装箱,这个集装箱就静态而言就是一个应用镜像文件,就动态而言,就...

小红牛
2017/12/05
0
0
【 全干货 】5 分钟带你看懂 Docker !

欢迎大家前往腾讯云社区,获取更多腾讯海量技术实践干货哦~ 作者丨唐文广:腾讯工程师,负责无线研发部地图测试。 导语:Docker,近两年才流行起来的超轻量级虚拟机,它可以让你轻松完成持续集...

腾讯云加社区
2017/11/03
38
0

没有更多内容

加载失败,请刷新页面

加载更多

ZhaoWei-2020-01-29

并发相关 1、并发编程三要素? (1)原子性 原子性指的是一个或者多个操作,要么全部执行并且在执行的过程中不被其他操作打断,要么就全部都不执行。 (2)可见性 可见性指多个线程操作一个共...

SuSheePark
19分钟前
43
0
用于除法时,“ /”和“ //”之间有什么区别?

将一个使用在另一个上是否有好处? 在Python 2中,它们似乎都返回相同的结果: >>> 6/32>>> 6//32 #1楼 它有助于阐明Python 2.x的行, /既不是下位划分也不是真正的划分。 当前接受的答案...

技术盛宴
19分钟前
41
0
微信小程序结构说明

一、微信小程序结构: 小程序框架的目标是通过尽可能简单、高效的方式让开发者可以在微信中开发具有原生App体验服务 小程序框架提供了自己的视图层描述语言wxml和wxss以及JavaScript,并在视...

冥焱
23分钟前
48
0
AspectJ 切点指示器-03-execution

execution() 匹配满足某一匹配条件的目标方法的连接点 各个类最终结构图如下: 1、Factory package com.test.aspectj.expression;/** * 工厂接口 */public interface Factory {...

moon888
59分钟前
72
0
“ STL”和“ C ++标准库”有什么区别?

有人引起了我的注意, 这篇文章声称(我的意思是) STL术语被误用于指代整个C ++标准库,而不是指从SGI STL中获得的部分。 (...)它指的是“ STL”,尽管实际上仍然很少有人使用STL(它是S...

javail
今天
60
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部