Durant35 / Durant35/docker_learning
Docker核心实现技术
Open
- Dominant language
- No language data
- Stars
- 0
- Forks
- 0
- PR merge metrics
- No merged PRs in 30d
Description
## 命名空间
+ 在操作系统中,包括内核、文件系统、网络、PID、UID、IPC、内存、硬盘、CPU等资源,所有的资源都是应用进程直接共享的。要想实现虚拟化,除了要实现对内存、CPU、网络IO、硬盘IO、存储空间等的限制外,还要实现文件系统、网络、PID、UID、IPC等的相互隔离。**前者相对容易实现一些,后者则需要宿主主机系统的深入支持**。
+ 随着Linux系统对于命名空间功能的逐步完善,现在已经可以实现上述需求,达到进程在彼此隔离的命名空间中运行:这些进程仍在共用同一个内核和某些运行时环境(Runtime environment,例如一些系统命令和系统库),但是彼此是不可见的,并且认为自己是独占系统。
+ 有了`pid 命名空间`,那么每个命名空间中的进程就可以相互隔离
+ 网络端口本身是共享本地系统的端口,因此还需要网络命名空间实现网络隔离,Docker采用**虚拟网络设备(Virtual Network Device)**的方式,将不同命名空间的网络设备连接到一起。默认情况下,**容器中的虚拟网卡将同本地主机上的docker0网桥连接在一起**。
+ 容器中的进程交互还是采用了Linux常见的进程间交互方法,包括信号量、消息队列和共享内存等
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.