🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
## 设备及文件限制 Docker通过使用设备资源控制组(cgroup)机制来封装应用程序并限制对主机上物理设备的访问,进而进一步地降低暴露区域。容器没有缺省的设备访问,需要明确地授予对设备的访问。这些对于正在运行程序的限制保护了容器主机的内核及其硬件,无论是物理的还是虚拟的。 Docker容器使用copy-on-write文件系统,它允许使用同一个文件系统映像作为多个容器的基础层。即使想同一个文件系统映像进行写操作时,容器察觉不到其他容器所作的变更,从而有效地隔离了运行在不同容器中的进程。 [![](https://box.kancloud.cn/2015-11-11_5642a268366ac.png)](http://dockerone.com/uploads/article/20151109/18a44f034fbd9587b00aaab3a0523e53.png) 如果你销毁了一个容器,所有对容器的变更也会丢失,除非你提交了你的变更。提交变更作为一个新的层将追踪并审计对基础映像的变更,它可以作为在Docker Hub中存储的一个新映像进行发布而且可以在一个容器中运行。这个审计线索对于提供信息来于保持合规而言是很重要的。当一个容器被破解或者发现漏洞,它也能够快速且方便地回滚到以前的版本。为了程序的运行,只有很少的几个核心Linux内核文件系统不得不用在容器环境中。大多数这些强制性的文件,诸如/sys和其他/proc下的文件,是以只读的方式进行挂载。这进一步限制了可能对它们进行写操作的访问能力,即使是有权限的容器进程也是如此。