首页 > 其他分享 >docker containerd runc 介绍

docker containerd runc 介绍

时间:2023-09-08 14:46:23浏览次数:34  
标签:容器 shim containerd runC runc docker Docker

containerd 提供了一组运行容器的 API。Docker 引擎通过调用 GRPC API 来启动执行进程,随后会启动管理器和执行器来负责监控和运行容器。容器最后通过runC来运行,runC 也是 Docker的另一个开源项目,它实现了 OCI 运行时标准。(OCI:开放容器协议,OCI开发了runC)。runC 是一套符合OCI标准的容器引擎;其是一个非常独立,真正创建容器的组件,runC可以独立于dockerd创建、操作容器。

 

简而言之:

containerd独立负责容器运行时和生命周期(如创建、启动、停止、中止、信号处理、删除等)containerd 只是一个守护进程

容器的实际运行时由 runc 控制

containerd 主要职责是镜像管理(镜像、元信息等)、容器执行(调用最终运行时组件执行)。

containerd-shim 调用runc启动容器,监控容器进程状态,回收容器中的相关进程等

dockerd是docker engine守护进程,dockerd启动时会启动containerd子进程,dockerd与containerd通过rpc进行通信

 

Docker 如何运行一个容器?

  1. Docker 引擎创建容器映像
  2. 将容器映像传递给 containerd
  3. containerd 调用 containerd-shim
  4. containerd-shim 使用 runC 来运行容器
  5. containerd-shim 允许runC在启动容器后退出

docker 简单探索

  • docker:Docker 客户端的可执行文件,用于与 Docker 守护进程进行交互。
  • docker-compose:Docker Compose 的可执行文件,用于定义和管理多个 Docker 容器的应用程序。
  • docker-containerd:Docker 使用的容器运行时工具,负责管理和执行容器。
  • docker-containerd-ctr:Docker Containerd 的命令行工具,用于与 Containerd 进行交互。
  • docker-containerd-shim:Docker Containerd 的 shim 进程,用于将容器的请求传递给 Containerd 容器运行时。
  • dockerd:Docker 守护进程的可执行文件,负责管理和运行容器。
  • docker-init:Docker 容器的初始化进程。
  • docker-proxy:Docker 网络代理,用于处理容器内部和外部网络之间的连接。

标签:容器,shim,containerd,runC,runc,docker,Docker
From: https://www.cnblogs.com/libruce/p/17687537.html

相关文章

  • docker常用功能小记
    1、查看docker容器、镜像的元数据dockerinspect容器ID/镜像IDdockerinspectimages示例如下:应用:查看容器关于目录挂载的信息:dockerinspectxxxx|grepMounts-A50查看挂载数据Mounts后50行的数据,如下:2、查看容器运行的日志实时查看日志dockerlogs-fcontainer......
  • docker常用命令
    docker镜像迁移服务器A打包生成docker镜像dockersavenginx:stable-alpine>/data/softs/nginx-stable-alpine.tar命令详解:dockersave[OPTIONS]IMAGE[IMAGE…]dockersave镜像名称:镜像tag>打包生成的镜像tar包的绝对路径上传tar包到服务器B执行镜像导入:dockerloa......
  • 部署K8S 1.28版本集群部署(基于Containerd容器运行)
    1、主机配置hostnamectlset-hostnamek8s-masterecho"172.21.131.89k8s-master">>/etc/hostssystemctlstopfirewalld&&systemctldisable firewalldsetenforce0&&sed-i"s/SELINUX=enforcing/SELINUX=disabled/g"/etc/......
  • NAS 后台安装 Docker 后配置 PostgreSQL
    群晖(Synology)NAS的后台在新版本对Docker不再称为Docker,现在改称为ContainerManager了。  单击进入后运行ContainerManager。PostgreSQL容器针对PostgreSQL的容器,我们选择容器后,如果你已经安装了PostgreSQL的话,应该就能看到运行的容器了。  然后选择设置。在Post......
  • 群晖(Synology)NAS 后台安装 Docker 后配置 PostgreSQL
    群晖(Synology)NAS的后台在新版本对Docker不再称为Docker,现在改称为ContainerManager了。  单击进入后运行ContainerManager。PostgreSQL容器针对PostgreSQL的容器,我们选择容器后,如果你已经安装了PostgreSQL的话,应该就能看到运行的容器了。  然后选择设......
  • 用docker搭建mysql的主从复制
    (1)创建主容器dockerrun-d-p3306:3306--privileged=true-v/mysql/log:/var/log/mysql-v/mysql/data:/var/lib/mysql-v/mysql/conf:/etc/mysql/conf.d-eMYSQL_ROOT_PASSWORD=123456--namemysqlmysql:(2)在宿主机/mysql/conf中创建mysql配置文件touch/mysql/conf/my.cnf......
  • docker 安装nginx,并配置域名ssl证书(超详细)
    1、直接安装最新的nginxdockerpullnginx2、由于后期需要方便配置与管理nginx,需要把nginx容器内的文件夹进行挂载到宿主机中,所以此处需要进行到自己心仪的盘中创建文件夹(本次说明在/home)mkdirnginx&&cd$_&&mkdir-p{ssl,config,logs}ssl放域名对应证书config放nginx配置文......
  • arm架构docker安装nacos
    前言搞了个hk1box,装了armbian系统,想用这个当服务器调试微服务,需要安装nacos。尝试安装非docker版本的nacos,去github下载arm版本的并且放到linux下面,运行的时候报tomcat错误,装了tomcat后还是报错,改了很多设置老是跑不了,于是决定用docker版本。1、挂载目录mkdir-p/home/nacos/l......
  • 深入理解容器化部署与Docker
    什么是容器化部署?容器化部署是将应用程序及其所有依赖项打包到一个独立的容器中的方法。容器是一个轻量级、可移植的单元,它可以在不同的环境中运行,而无需担心依赖项问题。容器化部署通常使用容器编排工具(如Kubernetes)来管理和协调容器的部署。为什么使用容器化部署?使用容器化部署的......
  • 安装docker 镜像之后 进入镜像下载报错
    在学习使用docker技术过程中,基于centos镜像自定义新的镜像,其中基础镜像centos需要提前安装好vim和net-tools,然而在刚开始通过yum-yinstallvim安装vim时,便出现了错误提示信息:Error:Failedtodownloadmetadataforrepo'appstream':Cannotprepareinternalm......