本文共 1217 字,大约阅读时间需要 4 分钟。
基于linux内核技术对应用程序进行隔离;
核心理念是将应用及依赖包打包到一个可移植的容器中;可发布到任意linux发行版的docker引擎上; 使用沙箱机制运行程序: (应用程序只能访问自己的目录,这个目录称为沙箱目录,而应用程序之间禁止数据的共享和访问; 沙箱机制是一种安全机制,设计原理就是只能允许自己的应用访问目录,而不允许其他的应用访问; 在iOS系统中,除了特有的应用可以通过使用特定的API共享数据(例如联系人),而其他的应用之间都不能共享数据。)Engine:处理docker客户端的请求,并进行相关的分发,下载镜像--image repository--;
runC:挂载文件系统并启动容器;
启动时间不同
虚拟机分钟级,docker秒级轻量级docker以M为单位,虚拟机以G为单位性能docker更快速安全性:不如虚拟机,一定程度上需要访问物理机内核;如何解决?使用要求结合实际环境;docker适合快速部署等场景一:节省项目环境部署时间
1.单项目打包2.整套项目打包利用docker-compose3.新开源技术试用场景二:环境的一致性
便于移植,多次利用部署,保持运行状态一致性;场景三:持续集成:
docker+jenkins构建持续集成环境:场景四:微服务
将业务架构拆分成微小的业务去组织整体业务;一个容器中只运行一个服务,容器之间隔离;docker EE是企业版本,提供技术支持等;
docker CE是公共版本;存储驱动:
aufs,devicemapper,overlay,overlay2(目前最热)exec 执行命令
pull 拉镜像push 上传镜像inspect 查看容器信息stats 查看容器运行状态save 保存镜像到本地load 加载镜像文件volume 创建存储volumes、bind mounts和tmpfs;
tmpfs是存储在宿主机内存中,不会写入到文件系统;bind mounts挂载宿主机目录,相当于软连接;docker harbor
cadvisor+influxdb+grafana
cadvisor:容器资源收集系统,收集容器的资源利用率,有内置的图形页面;
influxdb:时序数据库管理系统,以时间为索引存储数据;grafana:仪表盘,展示数据;转载于:https://blog.51cto.com/summer37/2112833