Docker概述
Docker 是什么
Logo
- Docker 使用 Google 公司推出的
Go
语言进行开发实现,基于 Linux 内核的cgroup,namespace
,以及 AUFS 类的Union FS
等技术 - 容器是完全沙箱机制,容器开销极低
- 对进程进行封装隔离,属于操作系统层面的虚拟化技术。由于隔离的进程独立于宿主和其它的隔离的进程,因此也称其为容器
- Docker 可以让开发者打包应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化
- Docker 作为一个软件集装箱化平台,可以让开发者构建应用程序时,将它与其依赖环境一起打包到一个容器中
- 然后很容易地发布和应用到任意平台中
- Docker 是提供应用打包,部署与运行的容器化平台
Docker 解决什么问题
- 解决了运行环境和配置问题,方便做
持续集成
,有助于整体发布
Docker 与传统虚拟机
传统虚拟机
- 传统虚拟机技术是虚拟出一套硬件后,在其上运行一个完整操作系统,在该系统上再运行所需应用进程
Docker
- 而容器内的应用进程直接运行于宿主的内核,容器内没有自己的内核,而且也没有进行硬件虚拟
- 因此容器要比传统虚拟机更为轻便
Docker 的优势
- 更高效的利用系统资源
- 更快速的启动时间
- —致的运行环境
- 持续交付和部署
- 更轻松的迁移
- 更轻松的维护和扩展
与传统虚拟机对比
🐤启动:
- Docker:秒级
- 虚拟机:分钟级
🐱👤硬盘使用:
- Docker:MB
- 虚拟机:GB
🧎♀️性能:
- Docker:接近原生
- 虚拟机:较弱
🐱🏍系统支持量:
- Docker:单机支持上千个容器
- 虚拟机:一般就几十个
Docker 模式与体系结构
- Docker 使用客户端-服务器(C/S)架构模式,使用远程 API 来管理和创建 Docker 容器