Docker
用於部署容器化應用程式的開放原始碼軟體 / 维基百科,自由的 encyclopedia
Docker是一个开放原始码的开放平台软件,用于开发应用、交付(shipping)应用和运行应用。Docker允许用户将基础设施(Infrastructure)中的应用单独分割出来,形成更小的颗粒(容器),从而提高交付软件的速度。[2]
![]() |
Quick Facts 原作者, 开发者 ...
![]() | |
原作者 | Solomon Hykes |
---|---|
开发者 | Docker, Inc. |
首次发布 | 2013年3月13日 (2013-03-13) |
当前版本 |
![]() |
原始码库 | ![]() |
编程语言 | Go |
操作系统 | Linux、Windows、macOS |
平台 | x86-64、ARM、s390x、ppc64le |
类型 | 操作系统层虚拟化 |
许可协议 | 可执行档:免费增值软件即服务 原始码:Apache许可证 2.0 |
网站 | www |
Close
Docker容器与虚拟机类似,但二者在原理上不同。容器是将操作系统层虚拟化,虚拟机则是虚拟化硬件,因此容器更具有便携性、更能高效地利用伺服器。 容器更多的用于表示软件的一个标准化单元。由于容器的标准化,因此它可以无视基础设施(Infrastructure)的差异,部署到任何一个地方。另外,Docker也为容器提供更强的业界的隔离兼容。[3]
Docker 利用Linux核心中的资源分离机制,例如cgroups,以及Linux核心命名空间(英语:Linux namespaces)(namespaces),来建立独立的容器(containers)。这可以在单一Linux实体下运作,避免启动一个虚拟机造成的额外负担[4]。Linux核心对命名空间的支持完全隔离了工作环境中应用程式的视野,包括行程树、网络、用户ID与挂载文件系统,而核心的cgroup提供资源隔离,包括CPU、存储器、block I/O与网络。从0.9版本起,Dockers在使用抽象虚拟是经由libvirt的LXC与systemd - nspawn提供界面的基础上,开始包括libcontainer函数库做为以自己的方式开始直接使用由Linux核心提供的虚拟化的设施。[4]