Docker是一个开放源代码的开放平台软件,Docker容器与虚拟机器类似,但二者在原理上不同。容器是将操作系统层虚拟化,虚拟机器则是虚拟化硬件,因此容器更具有便携式性、高效地利用服务器。容器更多的用于表示软件的一个标准化单元。由于容器的标准化,因此它可以无视基础设施(Infrastructure)的差异,部署到任何一个地方。另外,Docker 也为容器提供更强的业界的隔离相容。Docker 利用 Linux 核心中的资源分离机制,例如 cgroups,以及 Linux 核心命名空间(namespaces),来建立独立的容器(containers)。这可以在单一 Linux 实体下运作,避免启动一个虚拟机器造成的额外负担。Linux 核心对命名空间的支援完全隔离了工作环境中应用程序的视野,包括行程树、网络、使用者ID与挂载档案系统,而核心的 cgroup 提供资源隔离,包括CPU、内存、block I/O与网络。