Docker引擎介绍

本文详细介绍了Docker引擎的组成部分,包括Docker客户端、Docker守护进程、containerd及runc的功能与工作原理,深入探讨了Dockerdaemon的演变过程及其在容器生命周期管理中的角色,同时解析了shim在实现无守护进程容器中的关键作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. Docker引擎简介

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

2. Docker引擎详解

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

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 引擎,需要确保操作系统为 CentOS 7、CentOS 8 或 CentOS 9 的维护版本。存档版本不受支持或测试[^1]。 #### 使用存储库安装 ##### 设置存储库 在 CentOS 系统上安装 Docker 引擎之前,需要设置 Docker 的官方存储库。通过以下命令添加存储库: ```bash sudo yum install -y yum-utils sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo ``` ##### 安装 Docker 引擎 完成存储库配置后,可以使用以下命令安装 Docker 引擎: ```bash sudo yum install docker-ce docker-ce-cli containerd.io ``` 此命令将安装 Docker 引擎及其相关组件[^1]。 #### 从包安装 如果选择从包安装 Docker 引擎,可以将提供的压缩包 `Docker.tar.gz` 上传至 `/root` 目录并解压: ```bash tar -zxf Docker.tar.gz ``` 然后按照包内的说明进行安装[^2]。 #### 使用便捷脚本安装 Docker 提供了一个便捷脚本用于快速安装引擎。运行以下命令即可: ```bash curl -fsSL https://get.docker.com -o get-docker.sh sh get-docker.sh ``` 此脚本会自动检测系统环境并安装适合的 Docker 版本[^3]。 #### 卸载 Docker 引擎 如果需要卸载 Docker 引擎,可以执行以下命令: ```bash sudo yum remove docker-ce docker-ce-cli containerd.io sudo rm -rf /var/lib/docker/ ``` 上述命令将删除 Docker 引擎及相关文件[^4]。 #### 验证安装 安装完成后,可以通过以下命令验证 Docker 引擎是否正常工作: ```bash sudo systemctl start docker sudo docker run hello-world ``` 如果输出显示成功信息,则表示 Docker 引擎已正确安装。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值