首页 Docker教程Docker-服务进程管理

Docker-存储引擎管理

docker-镜像管理

运维派隶属马哥教育旗下专业运维社区,是国内成立最早的IT运维技术社区,欢迎关注公众号:yunweipai
领取学习更多免费Linux云计算、Python、Docker、K8s教程关注公众号:马哥linux运维

docker服务进程

通过查看docker进程,了解docker的运行及工作方式

查看宿主机进程树

18.06及之前的docker版本,进程关系:

Docker-服务进程管理插图
Docker-服务进程管理插图(1)

docker的进程关系

有四个进程:

dockerd:被client直接访问,其父进程为宿主机的systemd守护进程。

docker-proxy:每个进程docker-proxy实现对应一个需要网络通信的容器,管理宿主机和容器的之间端口映射,其父进程为dockerd,如果容器不需要网络则无需启动

containerd:被dockerd进程调用以实现与runc交互

containerd-shim:真正运行容器的载体,每个容器对应一个containerd-shim进程,其父进程为containerd

containerd-shim命令使用

容器的创建与管理过程

通信流程:

Docker-服务进程管理插图(2)

1.dockerd通过grpc和 containerd模块通信,dockerd由libcontainerd负责和containerd进行交换,dockerd和containerd 通信socket文件:/run/containerd/containerd.sock

2.containerd在dockerd启动时被启动,然后containerd启动grpc请求监听,containerd处理grpc请求,根据请求做相应动作

3.若是start或是exec 容器,containerd 拉起一个container-shim , 并进行相应的操作

4.container-shim别拉起后,start/exec/create拉起runC进程,通过exit、control文件和containerd通信,通过父子进程关系和SIGCHLD监控容器中进程状态

5.在整个容器生命周期中,containerd通过 epoll 监控容器文件,监控容器事件

grpc简介

Docker-服务进程管理插图(3)

gRPC是Google开发的一款高性能、开源和通用的 RPC 框架,支持众多语言客户端

官网:https://www.grpc.io/

podman 的进程结构

podman没有dockerd服务进程,所以当无容器启动时,无需启动任何进程,而容器启动时,会做为conmon的子进程

本文链接:http://www.yunweipai.com/34769.html

Docker-存储引擎管理

docker-镜像管理

网友评论comments

发表评论

电子邮件地址不会被公开。

暂无评论

Copyright © 2012-2020 YUNWEIPAI.COM - 运维派
扫二维码
扫二维码
返回顶部