Download as pdf or txt
Download as pdf or txt
You are on page 1of 8

12/9/23, 5:28 PM Docker 原理新手指南:一文看懂 Docker 是什么?

主题 了解 Linux 容器 什么是 Docker?

什么是 Docker?
Published 2018年 1月 9日 • 复制 URL

Docker 是什么?
"Docker"一词指代了多个概念,包括开源社区项目、开源项目使用的工具、主
导支持此类项目的公司 Docker Inc.,以及该公司官方支持的工具。这些技术和
公司的同名可能会造成混淆。
以下简要说明 Docker 以便区分:
IT 软件"Docker"是支持创建和使用 Linux® 容器的容器化技术。
开源 Docker 社区致力于改进这类技术,并免费提供给所有用户,使之获
益。
Docker Inc. 公司凭借 Docker 社区产品起家,主要负责提升社区版本的安
全性,并将技术进步与广大技术社区分享。此外,它还专门对这些技术产
品进行完善和安全固化,以服务于企业客户。
借助 Docker,您可将容器当做轻巧、模块化的虚拟机来使用。同时,您还将获
得高度灵活性,实现对容器的高效创建、部署及复制,并在环境之间迁移它们,
从而有助于您针对云来优化应用。

https://www.redhat.com/zh/topics/containers/what-is-docker 1/8
12/9/23, 5:28 PM Docker 原理新手指南:一文看懂 Docker 是什么?

试用产品 (英文) 开始管理 Docker 容器

Docker 与 Linux 容器的区别是什么?


Technically Speaking: New container tools for Red Hat Enterprise Linux

尽管有时混为一谈,但 Docker 并不等同于传统的 Linux 容器。Docker 技术最


初是基于 LXC 技术构建(大多数人会将这一技术与"传统的"Linux 容器联系在一
起),但后来它逐渐摆脱了对这种技术的依赖。LXC 可用作轻量型虚拟化技术,
但它对开发人员和用户来说体验不甚理想。除了运行容器之外,Docker 技术还
具备其他多项功能,包括简化用于构建容器、传输镜像以及控制镜像版本的流
程。

https://www.redhat.com/zh/topics/containers/what-is-docker 2/8
12/9/23, 5:28 PM Docker 原理新手指南:一文看懂 Docker 是什么?

传统的 Linux 容器使用 init 系统来管理多种进程。这意味着,所有应用都作为一


个整体运行。与此相反,Docker 技术力争让应用各自独立运行其进程,并提供
相应工具,帮助实现这一功能。这种精细化运作模式自有其优势。

Docker 容器的优势是什么?
模块化

Docker 容器化方法注重在不必停止整个应用的情况下,单独提取部分应用进行
更新或修复的能力。除了这种基于微服务的方法,您还可以采用与面向服务的架
构(SOA)类似的方法,在多个应用间共享进程。
层和镜像版本控制

每个 Docker 镜像文件都包含多个层,它们组合成一个镜像。每当镜像发生改变
时,就会创建一个新的镜像层。每当用户指定命令时,例如 run 或 copy,就会
创建一个新的层。
Docker 可重复利用这些层来构建新容器,因而加快了构建过程。镜像之间共享
中间变化,进一步提升了速度、规模以及效率。版本控制也是层所固有的功能:
每次发生新的更改时,您大都会获得一个内置的更改日志,拥有对容器镜像的全
盘管控。
https://www.redhat.com/zh/topics/containers/what-is-docker 3/8
12/9/23, 5:28 PM Docker 原理新手指南:一文看懂 Docker 是什么?

回滚

回滚也许是层最值得一提的功能。每个镜像有多个层。不喜欢镜像的当前迭代?
将它回滚到上一版本。这一功能还支持敏捷开发方法,帮助实现持续集成和部署
(CI/CD),使其在工具层面成为一种现实。
快速部署

新硬件的启用、运行、置备和供应在过去需要耗费数日,所需的投入和开销也很
繁重。基于 Docker 的容器可以将部署缩短到只用几秒。通过为每个进程创建容
器,您可以快速将这些进程共享给新的应用。而且,添加或移动容器时无需重启
操作系统,大大缩短了部署时间。除了部署时间更短外,您还可以轻松无虞、经
济高效地创建和销毁容器创建的数据。
因此,Docker 技术是一种更加精细、可控、基于微服务的技术,可为企业提供
更高的效率价值。

使用 Docker 有什么局限?
Docker 本身能够管理单个容器。但随着您开始使用越来越多的容器和容器化应
用,并把它们划分成数百个部分,很可能会导致管理和编排变得困难。最终,您
需要后退一步,对容器实施分组,以便跨所有容器提供诸如网络、安全和遥测等
服务。于是,Kubernetes 应运而生。
了解更多与 Kubernetes 容器编排有关的内容 
使用 Docker,您将获得与传统 Linux 容器不同的类 UNIX 功能,包括可以随同
应用一起,在容器中使用 cron 或 syslog 之类的进程。当然,在某些事情上面也
存在一些限制,例如终止子进程之后,需要清理孙进程,而对于这类事情,传统
Linux 容器天生会处理。但我们可以在开始时修改配置文件和设置功能,从而消
除这些顾虑,这些都是瑕不掩瑜的小问题。
在此之上,还有其他非命名空间的 Linux 子系统和设备,包括 SELinux、
Cgroup 和 /dev/sd* 设备等。这意味着,如果攻击者控制了这些子系统,主机
https://www.redhat.com/zh/topics/containers/what-is-docker 4/8
12/9/23, 5:28 PM Docker 原理新手指南:一文看懂 Docker 是什么?

也将不保。为了保持轻量,主机与容器共享内核,也因此埋下了安全漏洞的隐
患。在这一点上,它与虚拟机不同,后者更加严格地与主机系统保持隔离。
Docker 容器真的安全吗? 

Docker 守护进程也可能成为安全隐患。为使用和运行 Docker 容器,您很可能


需要使用 Docker 守护进程,来为容器提供持续运行时环境。Docker 守护进程
需要根权限,所以我们需要特别留意谁可以访问该进程,以及进程驻留在哪个位
置。例如,相比公共区域所用的守护进程(例如 Web 服务器),本地守护进程
的受攻击面要小得多。
为 Docker 提供全新安全功能 

继续阅读
文章
容器与虚拟机
Linux 容器和虚拟机(VM)都是封装型计算环境,里面组合了各种 IT 组件并独立于系统的
其余部分。
扩展阅读

https://www.redhat.com/zh/topics/containers/what-is-docker 5/8
12/9/23, 5:28 PM Docker 原理新手指南:一文看懂 Docker 是什么?

文章
什么是容器编排?
容器编排是指自动化容器的部署、管理、扩展和联网。
扩展阅读

文章
什么是 Linux 容器?
Linux 容器是与系统隔离开的一系列进程,它从单独的镜像运行,并由该镜像提供支持进程
所需的全部文件。
扩展阅读

详细了解容器
产品 相关文章 相关资源 培训

https://www.redhat.com/zh/topics/containers/what-is-docker 6/8
12/9/23, 5:28 PM Docker 原理新手指南:一文看懂 Docker 是什么?

企业级应用平台,包含一系列久经测试的服务,可在您选择的基础架构
上将应用推向市场。
了解更多

产品
工具
试用购买与出售
沟通
关于红帽
我们是世界领先的企业开源解决方案供应商,提供包括 Linux、云、容器和 Kubernetes。我
们致力于提供经过安全强化的解决方案,从核心数据中心到网络边缘,让企业能够更轻松地跨
平台和环境运营。
选择语言
简体中文

关于红帽
加入红帽
活动
全球办事处
https://www.redhat.com/zh/topics/containers/what-is-docker 7/8
12/9/23, 5:28 PM Docker 原理新手指南:一文看懂 Docker 是什么?

联系红帽
红帽博客
多元、平等与包容
红帽周边产品
红帽全球峰会

© 2023 Red Hat, Inc.


隐私声明
使用条款
方针政策概览
数字可访问性声明
Cookie preferences

https://www.redhat.com/zh/topics/containers/what-is-docker 8/8

You might also like