Docker的隔離性主要運(yùn)用Namespace 技術(shù)。
namespace(命名空間)可以隔離哪些:
1、文件系統(tǒng)需要是被隔離的
2、網(wǎng)絡(luò)也是需要被隔離的
3、進(jìn)程間的通信也要被隔離
4、針對權(quán)限,用戶和用戶組也需要隔離
5、進(jìn)程內(nèi)的PID也需要與宿主機(jī)中的PID進(jìn)行隔離
使用Namespace進(jìn)行容器的隔離有什么缺點(diǎn)呢?
最大的缺點(diǎn)就是隔離不徹底。
1)容器知識運(yùn)行在宿主機(jī)上的一種特殊的進(jìn)程,那么多個容器之間使用的就還是同一個宿主機(jī)的操作系統(tǒng)內(nèi)核。
2)在Linux內(nèi)核中,有很多資源和對象是不能被Namespace化的,最典型的例子是:時間,即如果某個容器修改了時間,那整個宿主機(jī)的時間都會隨之修改。
3)容器給應(yīng)用暴露出來的攻擊面比較大,在生產(chǎn)環(huán)境中,沒有人敢把運(yùn)行在物理機(jī)上的Linux容器暴露在公網(wǎng)上。