简述Docker Daemon 原理 ?

Docker Daemon是Docker后台服务的主要组件,负责接收并处理来自客户端的请求。以下是其工作原理的简要概述:

  1. C/S架构:Docker采用C/S架构,其中Docker Daemon作为服务端运行,而Docker客户端则为用户提供可执行命令。Docker Daemon可以运行在一个机器上,也可以通过socket或RESTful API与远程机器进行通信。
  2. 请求处理:当Docker客户端发出请求时,这些请求会被发送到Docker Daemon。Docker Daemon会处理这些请求,并执行相应的操作,如创建、运行或分发容器。
  3. 网络管理:Docker Daemon利用veth pair技术来管理容器的网络。它创建两个虚拟网络接口设备,无论哪个veth收到网络报文,都会将报文传输给另一个设备。Docker Daemon将其中一个veth(例如veth0)附加到创建的docker0网桥上,确保宿主机上的网络报文可以发送到veth0。同时,它将另一个veth(例如veth1)添加到容器所属的namespace下,并改名为eth0。这样,宿主机的网络报文发送到veth0后会被eth0接收,实现宿主机到容器的网络联通。同时,这也保证了容器能够独立使用eth0,实现了容器网络隔离性。
  4. 镜像管理:当需要创建新的容器时,Docker Daemon会根据用户提供的镜像来创建容器。它会解析镜像的配置信息,并创建相应的文件系统和配置。然后,它会启动容器并将其运行在后台。
  5. 资源管理:Docker Daemon还负责管理容器的资源使用,包括CPU、内存和磁盘空间等。它会监控容器的资源使用情况,并根据需要进行调整和限制。

总的来说,Docker Daemon是Docker系统的核心组件,负责处理来自客户端的请求、管理容器的网络和资源、以及执行其他必要的任务。通过与Docker客户端的交互,用户可以轻松地创建、运行和管理容器化应用程序。

发表评论

后才能评论