Docker:修订间差异
创建页面,内容为“'''Docker'''(全称:Docker Engine)是一组用于构建、发布及运行应用程序的开源平台即服务(PaaS)产品<ref name="baike">[https://wapbaike.baidu.com/item/Docker/13344470 Docker_百度百科]</ref><ref name="kepu">[https://cloud.kepuchina.cn/h5/detail?id=7294160476893949952 图文详情——科普中国资源服务]</ref>。它基于操作系统层级的虚拟化技术,将软件与其依赖项打包为称为容器的标准化单元…” |
IdleTap-bot(留言 | 贡献) 由旧格式Infobox转换为新参数格式(label/data),修复空信息框(由IdleTap-bot执行) |
||
| (未显示另一用户的1个中间版本) | |||
| 第1行: | 第1行: | ||
'''Docker'''(全称:Docker Engine)是一组用于构建、发布及运行应用程序的开源平台即服务(PaaS)产品<ref name="baike">[https://wapbaike.baidu.com/item/Docker/13344470 Docker_百度百科]</ref><ref name="kepu">[https://cloud.kepuchina.cn/h5/detail?id=7294160476893949952 图文详情——科普中国资源服务]</ref>。它基于操作系统层级的虚拟化技术,将软件与其依赖项打包为称为容器的标准化单元<ref name="docs">[https://docs.dockerd.com.cn/guides/docker-overview/ Docker 概述]</ref>。Docker能够帮助开发者在轻量级容器中自动部署应用程序,并使得不同容器中的应用程序彼此隔离<ref name="baike" /><ref name="kepu" />。该服务有免费和高级版本,于2013年首次发布,由Docker, Inc.开发<ref name="baike" /><ref name="kepu" />。{{Infobox| | '''Docker'''(全称:Docker Engine)是一组用于构建、发布及运行应用程序的开源平台即服务(PaaS)产品<ref name="baike">[https://wapbaike.baidu.com/item/Docker/13344470 Docker_百度百科]</ref><ref name="kepu">[https://cloud.kepuchina.cn/h5/detail?id=7294160476893949952 图文详情——科普中国资源服务]</ref>。它基于[[操作系统]]层级的虚拟化技术,将[[软件]]与其依赖项打包为称为容器的标准化单元<ref name="docs">[https://docs.dockerd.com.cn/guides/docker-overview/ Docker 概述]</ref>。Docker能够帮助开发者在轻量级容器中自动部署应用程序,并使得不同容器中的应用程序彼此隔离<ref name="baike" /><ref name="kepu" />。该服务有免费和高级版本,于2013年首次发布,由Docker, Inc.开发<ref name="baike" /><ref name="kepu" />。{{Infobox | ||
| title = Docker | |||
| label1 = 中文名 | |||
| data1 = 应用容器引擎 | |||
| label2 = 外文名 | |||
| data2 = Docker | |||
| label3 = 启动时间 | |||
| data3 = 2013年3月<ref name="baike" /> | |||
| label4 = 主要赞助商 | |||
| data4 = Docker, Inc.<ref name="baike" /> | |||
| label5 = 适用系统 | |||
| data5 = Windows,macOS,Linux<ref name="baike" /> | |||
| label6 = 适用架构 | |||
| data6 = x86-64,ARM,s390x,ppc64le<ref name="baike" /> | |||
| label7 = 许可协议 | |||
| data7 = Apache 2.0 license<ref name="baike" /> | |||
| label8 = 编程语言 | |||
| data8 = Go<ref name="baike" /><ref name="kepu" /> | |||
}}Docker是一个开源的平台,用于开发、交付和运行应用程序<ref name="baike" /><ref name="kepu" />。它能够在[[Windows]],[[macOS]],[[Linux]][[计算机]]上运行,并将某一应用程序及其依赖项打包至一个容器中,这些容器可以在任何支持Docker的环境中运行<ref name="baike" /><ref name="kepu" />。容器彼此隔离,但可以通过特定的通道相互传递信息<ref name="baike" /><ref name="kepu" />。 | |||
Docker提供了一个轻量级的虚拟化解决方案。由于运行在同一计算机上的所有容器共享同一个操作系统内核,避免了启动与维护虚拟机的开销。因此相比于传统的虚拟机,Docker容器更加轻便、快速、容易部署<ref name="baike" /><ref name="kepu" />。使用Docker,开发者可以避免在两台计算机上运行效果不一致的问题,容器提供了一致的行为,进而使得应用程序在不同环境的计算机上有相同的运行效果<ref name="baike" /><ref name="kepu" />。 | Docker提供了一个轻量级的虚拟化解决方案。由于运行在同一计算机上的所有容器共享同一个操作系统内核,避免了启动与维护虚拟机的开销。因此相比于传统的虚拟机,Docker容器更加轻便、快速、容易部署<ref name="baike" /><ref name="kepu" />。使用Docker,开发者可以避免在两台计算机上运行效果不一致的问题,容器提供了一致的行为,进而使得应用程序在不同环境的计算机上有相同的运行效果<ref name="baike" /><ref name="kepu" />。 | ||
| 第29行: | 第32行: | ||
=== 技术起源 === | === 技术起源 === | ||
最初Docker是PaaS提供商dotCloud开源的一个基于LXC的高级容器引擎,源代码托管在Github上。后基 | 最初Docker是PaaS提供商dotCloud开源的一个基于LXC的高级容器引擎,源代码托管在Github上。后基于[[Go]]语言自研libcontainer用以替换LXC<ref name="baike" /><ref name="kepu" />。Docker自2013年以来非常火热,无论是从GitHub上的代码活跃度,还是Redhat在RHEL6.5中集成对Docker的支持,就连[[Google]]的Compute Engine也支持Docker在其之上运行<ref name="baike" /><ref name="kepu" />。 | ||
Docker之所以大获成功,是因为彼时的软件开发者面临环境管理复杂、云计算时代到来、虚拟化手段变化以及LXC移动性等问题<ref name="baike" /><ref name="kepu" />。Docker的设想是交付运行环境如同海运,OS如同一个货轮,每一个在OS基础上的软件都如同一个集装箱。用户可以通过标准化手段自由组装运行环境,同时集装箱的内容可以由用户自定义,也可以由专业人员制造<ref name="kepu" />。 | Docker之所以大获成功,是因为彼时的软件开发者面临环境管理复杂、云计算时代到来、虚拟化手段变化以及LXC移动性等问题<ref name="baike" /><ref name="kepu" />。Docker的设想是交付运行环境如同海运,OS如同一个货轮,每一个在OS基础上的软件都如同一个集装箱。[[用户]]可以通过标准化手段自由组装运行环境,同时集装箱的内容可以由用户自定义,也可以由专业人员制造<ref name="kepu" />。 | ||
=== 发展历程 === | === 发展历程 === | ||
| 第38行: | 第41行: | ||
2013年3月,Docker以Apache 2.0授权协议开源,主要项目代码在GitHub上进行维护<ref name=":1">[https://developer.huawei.com/consumer/cn/forum/topic/0202139463581360327 打开 Docker 大门-华为开发者话题]</ref>。Docker项目后来还加入了Linux基金会<ref name=":1" />。 | 2013年3月,Docker以Apache 2.0授权协议开源,主要项目代码在GitHub上进行维护<ref name=":1">[https://developer.huawei.com/consumer/cn/forum/topic/0202139463581360327 打开 Docker 大门-华为开发者话题]</ref>。Docker项目后来还加入了Linux基金会<ref name=":1" />。 | ||
2014年,随着0.9版本的发布,Docker用自己的组件libcontainer替换了LXC,后者是用Go编程语言编写的。同年11月,亚马逊弹性计算云(EC2)的Docker容器服务发布<ref name="kepu" />。 | 2014年,随着0.9版本的发布,Docker用自己的组件libcontainer替换了LXC,后者是用Go[[编程]]语言编写的。同年11月,亚马逊弹性计算云(EC2)的Docker容器服务发布<ref name="kepu" />。 | ||
2016年4月,独立软件供应商Windocks向Windows发布了Docker开源项目的移植版,支持Windows<ref name="kepu" />。 | 2016年4月,独立软件供应商Windocks向Windows发布了Docker开源项目的移植版,支持Windows<ref name="kepu" />。 | ||
== 架构 == | == 架构 == | ||
Docker使用客户端-服务器(C/S)架构<ref name="docs" /><ref name=":2">[https://developer.aliyun.com/article/1602772 docker的底层原理]</ref>。Docker客户端与Docker守护进程对话,Docker守护进程负责构建、运行和分发Docker容器的繁重工作<ref name="docs" />。Docker客户端和守护进程可以在同一系统上运行,或者可以将Docker客户端连接到远程Docker守护进程<ref name="docs" />。Docker客户端和守护进程通过REST API在UNIX套接字或网络接口上进行通信<ref name="docs" />。 | Docker使用客户端-[[服务器]](C/S)[[架构]]<ref name="docs" /><ref name=":2">[https://developer.aliyun.com/article/1602772 docker的底层原理]</ref>。Docker客户端与Docker守护进程对话,Docker守护进程负责构建、运行和分发Docker容器的繁重工作<ref name="docs" />。Docker客户端和守护进程可以在同一系统上运行,或者可以将Docker客户端连接到远程Docker守护进程<ref name="docs" />。Docker客户端和守护进程通过REST API在UNIX套接字或网络接口上进行通信<ref name="docs" />。 | ||
=== Docker守护进程 === | === Docker守护进程 === | ||
| 第52行: | 第55行: | ||
=== Docker注册表 === | === Docker注册表 === | ||
Docker注册表存 | Docker注册表[[存储]]Docker镜像。Docker Hub是一个任何人都可以使用的公共注册表,并且Docker默认配置为在Docker Hub上查找镜像。用户甚至可以运行自己的私有注册表<ref name="docs" />。 | ||
== 核心概念 == | == 核心概念 == | ||