docker的组成:
Docker 主机(host):一个物理机或虚拟机,用于运行Docker服务进程或容器
Docker 服务端(server):Docker守护进程,运行docker容器
Docker 客户端(client):客户端使用Docker命令或其他工具调用docker API
Docker 仓库(registry):保存镜像的仓库,类似于git或SVN这样的版本控制系统
Docker 容器(container):容器是从镜像生成对外提供服务的一个或一组服务
docker的核心技术:
容器runtime:真正运行容器的地方,早期是lxc,目前默认是runc可兼容lxc
容器管理工具:lxc是lxd的管理工具,runc的管理工具是docker engine包含后台daemon和cli
容器定义工具:docker image是容器的模板,runtime依据docker image创建容器
dockerfile:包含N个命令的文本文件,通过dockerfile创建docker image
ACI(APP container image):与docker image 类似
registry:镜像仓库,统一保存镜像而且是多个不同镜像版本的地方
编排工具:swarm:docker开发的容器编排引擎
kubernetes:gogole领导开发的容器编排引擎
docker依赖的技术:
容器网络:docker自带的网络docker network,多主机运行的时候需要第三方开源网络,例如calico, flannel
服务发现:kuberetes自带服务发现功能,需结合kube-dns服务解析内部域名
容器监控:原生命令docker ps/top/stats查看容器运行状态,另外可以通过第三方软件实现,例如prometheus+各类采集器
数据管理:容器的动态迁移会导致在不同的host之间迁移,所以需要逻辑卷/存储挂载等方式保证容器能正常访问
日志收集:docker原生的日志查看工具docker logs,一般容器内部日志通过ELK等专业工具进行收集处理
docker版本分为docker ce(社区版)和docker ee(企业收费版)
重要组成:
存储引擎:overlay2
验证系统:cgroups
容器管理系统:container