Docker 是 Linux 下的“轻量化虚拟”,是一种虚拟化容器。对于容器中的程序来说,它看起来就像是一个彻底的虚拟机或者彻底的硬件系统一样,拥有自己的文件系统、网络系统,自己的操作系统和配置,与实际硬件上跑的其他的容器中的进程互不可见,只能通过网络进行通信。但它与传统的 kvm 等硬件虚拟技术很不同:

  • Docker 非常轻量化。它给其中的进程增加的开销非常小。一个实际硬件服务器上可以同时运行数以千计的 Docker 容器而毫无压力。
  • Docker 容器间互不可见,可以单独选择 Linux 版本和发行版,这让开发者可以开发出自己的 Docker 镜像,它可以随处运行,对外界系统的依赖可以减到最低。例如,一个 web bbs 程序,现在可以把自己所依赖的数据库服务、web 服务器等服务放在一个镜像中,这个镜像可以在任何 Docker 容器中运行,从而让开发模板化达到新的层次。
  • Docker 进程没有做完全的内存、资源分配,这让 Docker 容器之间的隔离性不强,一定程度上它们是互相协作的。在安全性上这不如传统虚拟机。
  • Docker 提供了非常容易使用的工具来建造和管理镜像,让镜像制造过程非常容易嵌入到开发人员的工作流程中。

Docker.com 提供了非常细致的入门指引,文档也非常漂亮。


robertluo
738 声望21 粉丝