Docker介绍

关于docker

开源项目

由dotCloud于2013年初发起
Go语言实现
github地址:https://github.com/docker/docker

目标

其目标是通过对应用组件的封装、分发、部署、运行等生命周期的管理,达到应用组件级别的“一次封装,到处运行”

在了解Docker之前我们需要先了解一下容器技术

容器技术

容器历史
容器技术 系统 时间
chroot Unix 1982年
FreeBSD jail FreeBSD 2000年
Linux-VServer GUN/Linux 2001年
Solaris Containers Sun Solaris 2004年
OpenVZ GUN/Linux 2005年

虽然这些技术经过多年的演化已经十分成熟了,但是这些技术并没有被集成到主流的Linux内核中,使用起来都很不方便。
例如 OpenVC 技术就需要用户给系统打上特定的内核补丁才可以使用。

Linux容器技术(LXC)

基于Linux内核机制的资源隔离方案,可以有效的将由单个操作系统管理的资源划分到孤立的组中,在孤立的组之间平衡资源的使用。
最重要的是LXC被集成到了主流的Linux内核中,成为了Linux系统轻量级的容器技术的事实标准。

Linux容器技术(LXC)是Docker引擎的基础

容器VS虚拟机

与虚拟机相同的是,可以为这些容器设置计算资源限制,挂载存储,连接网络,而与虚拟机不同的是,这些应用运行时共用着一个Kernel。
1. Docker 容器很快,启动和停止都在秒级别,比虚拟机快很多
2. Docker 容器对系统资源需求少,一台主机上可以同时运行数千个容器
3. Docker 通过类似 Git 的操作来方便用户获取、分发、和更新应用,指令简单,学习成本低
4. Docker 通过 Dockerfile 配置文件来支持灵活的自动化创建和部署机制,更高效

总结如下:
特性 容器 虚拟机
启动速度 秒级 分钟级
硬盘使用 MB GB
性能 接近原生 弱于
系统支持量 单机支持上千个容器 一般几十个
隔离性 安全隔离 完全隔离

Docker和Linux容器

Docker提供了各种容器管理工具(分发、版本、移植等)让用户可以简单明了的使用Linux容器技术。
Docker 容器在操作系统的层面实现虚拟化,直接使用本地主机的操作系统,更轻量。
Docker 还为 Linux 容器技术提供更高效的版本控制机制。

你可能感兴趣的:(Docker)