## 設備及文件限制
Docker通過使用設備資源控制組(cgroup)機制來封裝應用程序并限制對主機上物理設備的訪問,進而進一步地降低暴露區域。容器沒有缺省的設備訪問,需要明確地授予對設備的訪問。這些對于正在運行程序的限制保護了容器主機的內核及其硬件,無論是物理的還是虛擬的。
Docker容器使用copy-on-write文件系統,它允許使用同一個文件系統映像作為多個容器的基礎層。即使想同一個文件系統映像進行寫操作時,容器察覺不到其他容器所作的變更,從而有效地隔離了運行在不同容器中的進程。
[](http://dockerone.com/uploads/article/20151109/18a44f034fbd9587b00aaab3a0523e53.png)
如果你銷毀了一個容器,所有對容器的變更也會丟失,除非你提交了你的變更。提交變更作為一個新的層將追蹤并審計對基礎映像的變更,它可以作為在Docker Hub中存儲的一個新映像進行發布而且可以在一個容器中運行。這個審計線索對于提供信息來于保持合規而言是很重要的。當一個容器被破解或者發現漏洞,它也能夠快速且方便地回滾到以前的版本。為了程序的運行,只有很少的幾個核心Linux內核文件系統不得不用在容器環境中。大多數這些強制性的文件,諸如/sys和其他/proc下的文件,是以只讀的方式進行掛載。這進一步限制了可能對它們進行寫操作的訪問能力,即使是有權限的容器進程也是如此。