Docker 基础概念理解
2019-06-21 本文已影响0人
one_8274
镜像
-
基本定义:
- 提供容器运行时所需的程序、库、资源、配置等文件以及一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)。
-
特点:
- 不包含任何动态数据,内容在构建之后也不会被改变。
- 分层存储,镜像一般由多层文件系统联合组成
- 分层存储使得镜像构建更加容易
-
基本命令
- 查看镜像: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集群的管理
- 任务
- Swarm中最小调度单位,其实就是一个单一的容器
- 服务(Services)
- 一组任务的集合,服务定义了任务的属性。服务有两种模式
- replicated services 按照一定规则在各个工作节点上运行指定个数的任务
- global services每个工作节点上运行一个任务
- 一组任务的集合,服务定义了任务的属性。服务有两种模式
- 节点
- 服务和任务关系截图
Stack
-
stack是一组相互关联的服务,它们共享依赖关系
- 每个服务可以是Swarm(集群)
-
个人理解:本质之分布式,Swarm本质是集群
有理解不到位,欢迎指正