Docker-核心概念

118 阅读2分钟

1:镜像

  • 1:什么是镜像
    • 通俗的讲,镜像是一个只读的文件和文件夹组合,它包含了容器运行时所需要的所有基础文件和配置信息,是容器启动的基础。所以你想要启动一个容器,就需要一个镜像,镜像是容器启动的必要条件
  • 获取镜像
    • 自己创建镜像
    • 从仓库中拉取

2:容器

  • 容器是Docker的另一个核心概念,通俗的讲,容器是镜像的运行实体,镜像是静态的,而容器带有运行时需要的可写文件层,并且容器中的进程属于运行状态,即容器运行着真正的应用进程,容器有创建,运行,停止,暂停和删除五种状态
  • 虽然容器本质是运行的一个进程,但是容器有自己独立的命名空间和资源限制,也就是说容器内部,无法看到主机主机上的进程,环境变量,网络等信息,这是容器与直接运行在主机上的本质区别

3:仓库

  • Docker的镜像仓库类似与代码仓库,用来存储和分发Docker镜像,镜像仓库分为私有和共有

4:Docker架构

  • Docker整体架构是采用C/S模式,由客户端和服务端组成,客户端负责发送操作指令,服务端负责执行客户端发送的指令
  • Docker客户端
    • Docker客户端其实是一种泛称,其中Docker命令是docker用户与docker服务端交互的主要方式,除了使用docker命令,还可以直接使用REST API的方式与Docker进行交互,甚至还可以使用各种语言的SDK与Docker服务端进行交互,包括Python,Java,Go等
  • Docker服务端
    • Docker服务端是Docker后台服务的总称,其中dockerd是一个非常重要的组件,它是真正负责执行和响应客户端的请求。然后将客户端的请求转换成Docker的具体操作,例如镜像,容器等具体对象的操作和管理

5:Docker重要组件

  • runC:runC是Docker官方按照OCI容器运行时标准的一个实现,runC是一个用来运行容器的轻量级工具,是真正用来运行容器的
  • contained:contained通过contained-shim启动并管理runC,可以说contained是真正管理容器的生命周期