阅读计划-容器

Posted by 聪少 on 2019-05-29

说起容器基本上就不能脱离Docker,Docker已经成为容器的形象代言人!因为本系列文章是阅读自己动手写Docker,所以对容器而言这里默认对都是只Docker,而且docker也已经成为业内对标准!

Docker可以用来干什么?

Docker是一款开源工具,可以将应用服务所需要的一切:代码、运行工具、系统工具、依赖等打包成一个标准的镜像文件并且以容器的方式运行。这样做的好处是保证了应用的运行环境稳定并且不被外界环境影响。

Docker的特点

  1. 轻量级

在同一台宿主机上共享系统内核,启动速度快内存占用少,并且镜像是分层文件系统结构使得硬盘使用率提升。

  1. 开放

Docker容器基于开放标准,可以运行在Windows、Linux、Mac操作系统上。

  1. 安全

容器将应用程序隔离起来,这样程序之间互不影响,配合资源隔离和限制,这样给应用程序提供了额外的安全保护。

Docker和虚拟机的区别

VM在宿主机器、宿主机操作系统的基础上创建虚拟层、虚拟化的操作系统再进行应用安装运行。
Docker在宿主机、宿主机操作系统上创建Docker引擎,引擎只是做一些资源的隔离与限制,本质上程序还是运行在宿主机上的。

Docker的优点

  1. 持续集成

Docker可以保持跨环境的一致性问题,这样就可以避免不同环境的细微不同而导致依赖、版本等问题引起的一系列麻烦。保持环境和依赖的一致性,可以提升因环境不一致造成的发布失败,从而提升整个发布的成功率。

  1. 版本控制

Docker可以像Git仓库一样,通过不同版本号来对镜像进行管理。可以让你轻松的回滚到这个镜像前的任意版本。

  1. 可移植性

主流的云计算提供商都对容器进行了支持,各种操作系统也对容器进行了支持,可以做到一个镜像随处运行。

  1. 隔离性

Docker可以确保你的应用程序与资源是分隔开的,Docker能够确保每个容器都拥有自己的资源,并且和其他容器是隔离的。你可以用不同的容器来运行使用不同堆栈的应用程序。除此之外,如果你想在服务器上直接删除一些应用程序是比较困难的,因为这样可能引发依赖关系冲突。而Docker可以帮你确保应用程序被完全清除,因为不同的应用程序运行在不同的容器上,如果你不在需要一款应用程序,那你可以简单地通过删除容器来删除这个应用程序,并且在你的宿主机操作系统上不会留下任何的临时文件或者配置文件。

  1. 安全性

Docker确保运行在容器中的应用程序和其他容器中的应用程序是完全分隔与隔离的,在通信流量和管理上赋予你完全的控制权。Docker容器不能窥视运行在其他容器中的进程。从体系结构角度来看,每个容器只使用着自己的资源(从进程到网络堆栈)。