17.Docker技术入门与实战 --- 核心实现技术
Posted enlyhua
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了17.Docker技术入门与实战 --- 核心实现技术相关的知识,希望对你有一定的参考价值。
第17章 核心实现技术
17.1 基本架构
1.服务端
1.dockerd
2.docker-proxy
3.containerd
4.containerd-shim
2.客户端
3.镜像仓库
17.2 命名空间
1.进程命名空间
2.IPC命名空间
同一个IPC命名空间内的进程可以彼此互相看见,允许进行交互;不同空间的进程则无法交互。
3.网络命名空间
通过网络命名空间,可以实现网络隔离。一个网络命名空间为进程提供了一个完全独立的网络协议栈的视图。包括网络设备接口、IPv4和IPv6
协议栈、IP路由表、防火墙规则、sockets等,这样每个容器的网络就能隔离开来。
docker采用虚拟网络设备(VND)的方式,将不同命名空间的网络设备连接到一起。默认情况下,docker在宿主机上创建多个虚拟网桥(如默认的
docker0),容器中的虚拟网卡通过网桥进行连接。
每个容器默认分配一个网桥上的虚拟网口,并将docker0的ip地址设置为默认的网关,容器发起的网络流量通过宿主机的iptables规则进行转发。
4.挂在命名空间
类似于chroot,挂在命名空间可以将一个进程的根文件系统限制到一个特定的目录下。
挂在命名空间允许不同命名空间的进程看到的本地文件位于宿主机中不同路径下,每个命名空间中的进程所看到的文件目录是彼此隔离的。例如,
不同命名空间中的进程,都认为自己独占了一个完整的根文件系统(rootfs)。
5.UTS命名空间
UTS(UNIX Time-sharing System)命名空间允许每个容器都拥有独立的主机名和域名。从而可以虚拟出一个有独立主机名和网络空间的环境,
就跟网络上一台独立的主机一样。
如果没有手动指定主机名称,docker容器的主机名就是返回的容器的ID的前6个字节前缀,否则为指定的用户名。
6.用户命名空间
每个容器都可以有不同的用户和组id,
以上是关于17.Docker技术入门与实战 --- 核心实现技术的主要内容,如果未能解决你的问题,请参考以下文章
大数据开发基础入门与项目实战Hadoop核心及生态圈技术栈之1.Hadoop简介及Apache Hadoop完全分布式集群搭建