作者信息:https://home.cnblogs.com/u/huangjiabobk

在Docker中,docker run指令执行后,生成了哪些进程?

当执行 docker run 指令后,Docker 会启动一个新的容器实例。这个过程中会涉及多个进程和组件的交互。以下是 docker run 指令执行后生成的主要进程和组件:

  1. Docker Daemon(守护进程):

    • Docker Daemon 是 Docker 的后台服务,它长期运行并管理 Docker 容器、镜像、网络和卷等资源。
    • 当执行 docker run 指令时,客户端(CLI 或其他 Docker API 调用者)会向 Docker Daemon 发送请求。
  2. Docker Containerd:

    • Docker Containerd 是 Docker Daemon 的一部分,它负责容器的生命周期管理,如创建、启动、停止和删除容器。
    • 当 Docker Daemon 接收到 docker run 请求后,它会调用 Docker Containerd 来创建和启动容器。
  3. Docker Containerd-Shim:

    • Docker Containerd-Shim 是一个轻量级的进程,它作为容器运行时和 Docker Containerd 之间的中介。
    • 每个容器都会有一个与之关联的 Docker Containerd-Shim 进程,它负责监听容器的状态变化,并将这些变化报告给 Docker Containerd。
  4. 容器内进程:

    • 当容器启动时,它会根据 Dockerfile 中的 CMDENTRYPOINT 指令来运行一个或多个进程。
    • 这些进程是容器内的主要工作负载,它们执行容器所需的任务。
  5. 其他辅助进程

    (如需要):

    • 根据容器的配置和需要,可能还会启动其他辅助进程,如日志收集器、监控代理等。

综上所述,在 Linux 系统中,你可以使用 ps 命令或 docker top 命令来查看容器内的进程列表。这些命令会显示容器内正在运行的进程及其相关信息。需要注意的是,Docker 使用了 Linux 的内核特性(如 cgroups 和 namespaces)来实现进程隔离和资源限制,因此容器内的进程和宿主机上的其他进程是相互隔离的。

posted @ 2024-03-05 09:07  黄嘉波  阅读(92)  评论(0编辑  收藏  举报
版权声明:原创作品,谢绝转载!否则将追究法律责任。--作者 黄嘉波