容器技术与docker

1.容器是什么

容器:容器有效地将由单个操作系统管理的资源划分到独立的组中,以更好地在孤立的组之间平衡有冲突的资源使用需求

linux容器 (Linux Containers, LXC)

最早的容器技术可以追溯到1982 Unix系列操作系统的chroot工具。早起的容器实现技术包括FreeBSD操作系统上的FreeBSD jail(2000年左右出现),Sun Solaris操作系统上的Solaris Containers(2004年发布),以及GNU/Linux上的Linux-Vserver和OpenVZ。

2.什么是Docker

Docker是基于Go语言实现的容器项目,诞生于2013年,最初的发起者是DotCloud公司。
Docker的构想是要实现“Build, Ship and Run Any App, Anywhere”, 即通过对应用的封装(Packaging)、分发(Distribution)、部署(Deployment)、运行(Runtime)生命周期进行管理,达到应用组件“一次封装,到处运行” 的目的

3. 从Linux容器到Docker

在LXC的基础上,Docker进一步又花了容器的使用体验。

首先, Docker提供了各种容器管理工具(如分发、版本、移植等)让用户无需关注底层操作,更加简单地管理和使用容器;其次,Docker通过引入文件分层系统和高效的镜像机制,降低了迁移难度。
简单地讲,可以将Docker容器理解为一种轻量级的沙盒(sandbox)。每个容器运行一个应用,不同的容器之间相互隔离,容器之间可以通过网络互相通信。容器的创建和停止都十分迅速,几乎与创建和终止原生应用一致。另外容器自身对于系统资源的需求也十分有限,远低于传统虚拟机。

4. 容器与虚拟化

容器不就是虚拟化吗?
不完全如此。更确切的说法应该是:两者为互补关系。

  • 虚拟化使得您的操作系统(Windows 或 Linux)可同时在单个硬件系统上运行。
  • 容器则可共享同一个操作系统内核,将应用进程与系统其他部分隔离开。


这意味着什么?虚拟化会使用虚拟机监控程序模拟硬件,从而使多个操作系统能够并行运行。但这不如容器轻便。事实上,在仅拥有容量有限的有限资源时,您需要能够可以进行密集部署的轻量级应用。Linux 容器在本机操作系统上运行,与所有容器中共享该操作系统,因此应用和服务能够保持轻巧,并行化快速运行。

5. Docker在开发和运维中的优势

  • 更快速的交付和部署
  • 更高效的资源利用
  • 更轻松的迁移和扩展

参考
  《Docker技术入门与实战》 第二版
   什么是 Linux 容器? https://www.redhat.com/zh/topics/containers/whats-a-linux-container

posted @ 2019-05-26 18:25  漂泊的蒲公英  阅读(208)  评论(0)    收藏  举报