您的位置:首页 > 技术中心 > 运维 >

docker引擎是什么

时间:2021-12-30 16:42

Docker引擎是用来运行和管理容器的核心软件,其主要的组件构成有:Docker客户端(Docker Client)、Docker守护进程(Docker deamon)、containerd和runc。

本教程操作环境:linux5.9.8系统、docker-1.13.1版、Dell G3电脑。

1. Docker引擎简介

  • Docker引擎是用来运行和管理容器的核心软件

  • Docker 引擎由许多专用的工具协同工作,从而可以创建和运行容器,例如 API、执行驱动、运行时、shim 进程等。

  • Docker引擎主要的组件构成:Docker客户端(Docker Client), Docker守护进程(Docker deamon),containerd以及runc。

2. Docker引擎详解

  • Docker首次发布时,由两个核心组件构成:LXC和Docker daemon。
  • Docker daemon是单一的二进制文件,包含诸如Docker客户端,Docker API,容器运行时,镜像构建等。
  • LXC提供了对诸如命名空间和控制组(CGroup)等基础工具的操作能力,它们是基于Linux内核的容器虚拟化技术。在 Docker 0.9 版本中,Libcontainer 取代 LXC 成为默认的执行驱动。

2.1. Docker daemon

  • Docker daemon整体性带来的越来越多的问题:
    • 难于变更
    • 运行越来越慢
    • 这并非生态公司所期望的
  • daemon使用一种CRUD风格的API,通过gRPC与containerd进行通信

2.2. runc

  • runc实质上是一个轻量级的,针对Libcontainer进行了包装的命令行交互工具。
  • runc作用:创建容器

2.3. containerd

  • 主要作用:容器的生命周期管理–start|stop|pause|rm…

2.4. shim

  • shim是实现无daemon的容器不可或缺的工具,runc每次创建新容器,都会fork一个新的runc实例,一旦容器创建完毕,对应的runc进程就会退出。
  • 一旦父进程runc退出,相关联的container-shim进程就会成为容器的父进程
  • shim的部分职责:
    • 保持所有STDIN和STDOUT流是开启状态,从而当daemon重启的时候,容器不会因为管道的关闭而终止。
    • 将容器的退出状态反馈给daemon。

2.5. 在Linux上的实现

  • dockerd(Docker daemon), docker-containerd(containerd), docker-containerd-shim(shim)和docker-runc(runc)都是由单独的二进制实现。

2.6. daemon的作用

  • 主要功能:镜像管理,镜像构建,REST API, 身份验证,安全,核心网络以及编排。

推荐学习:《docker视频教程》

以上就是docker引擎是什么的详细内容,更多请关注gxlcms其它相关文章!

热门排行

今日推荐

热门手游