Docker 基础概念理解

镜像

  • 基本定义:

    • 提供容器运行时所需的程序、库、资源、配置等文件以及一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)。
  • 特点:

    • 不包含任何动态数据,内容在构建之后也不会被改变。
    • 分层存储,镜像一般由多层文件系统联合组成
    • 分层存储使得镜像构建更加容易
  • 基本命令

    • 查看镜像:docker images ls
    • 删除镜像:docker rmi image_id

容器

  • 基本定义
    • 镜像运行时的实体,可以被创建,启动,停止,暂停,删除
  • 特点
    • 实质是进程,但和宿主机不同在,有自己独立的命名空间
      • 自己的 root 文件系统、自己的网络配置、自己的进程空间,甚至自己的用户 ID 空间
    • 容器存储层,每一个容器运行时,是以镜像为基础层,在其上创建一个为当前容器读写准备的存储层
    • 容器存储层的生存周期和容器一样,容器消亡时,容器存储层也随之消亡
    • Docker官方最佳实践,建议容器存储层保持无状态化,所有文件写入应该用数据卷(Volume)
    • 数据卷生命周期独立于容器,有利于数据保存

服务

  • 实质是运行中的容器

Swarm

  • 介绍:容器集群系统
  • 优点:
    • 规模高性能

      • Swarm可拓展极限在1000个节点上运行50000个部署容器,容器启动时间亚秒级,且性能无减损
    • 灵活的容器调度

    • 服务持续可用

      • 由Swarm Manager提供高可用,具体通过创建多个Swarm master节点和指定主master节点宕机时的备选策略
    • Docker API完全支持以及兼容



  • 相关基本概念
    • 节点
      • 管理节点:Swarm集群的管理
        • 一个Swarm集群可以有多个管理节点,但只有一个管理节点可以成为Leader,Leader通过raft协议实现
      • 工作节点:任务执行节点
    • 任务
      • Swarm中最小调度单位,其实就是一个单一的容器
    • 服务(Services)
      • 一组任务的集合,服务定义了任务的属性。服务有两种模式
        • replicated services 按照一定规则在各个工作节点上运行指定个数的任务
        • global services每个工作节点上运行一个任务

  • 服务和任务关系截图

Stack

  • stack是一组相互关联的服务,它们共享依赖关系

    • 每个服务可以是Swarm(集群)
  • 个人理解:本质之分布式,Swarm本质是集群



有理解不到位,欢迎指正

你可能感兴趣的:(Docker 基础概念理解)