Docker 內(nèi)核名字空間

2018-08-04 17:59 更新

Docker 容器和 LXC 容器很相似,所提供的安全特性也差不多。當(dāng)用 docker run 啟動(dòng)一個(gè)容器時(shí),在后臺(tái) Docker 為容器創(chuàng)建了一個(gè)獨(dú)立的名字空間和控制組集合。

名字空間提供了最基礎(chǔ)也是最直接的隔離,在容器中運(yùn)行的進(jìn)程不會(huì)被運(yùn)行在主機(jī)上的進(jìn)程和其它容器發(fā)現(xiàn)和作用。

每個(gè)容器都有自己獨(dú)有的網(wǎng)絡(luò)棧,意味著它們不能訪問(wèn)其他容器的 sockets 或接口。不過(guò),如果主機(jī)系統(tǒng)上做了相應(yīng)的設(shè)置,容器可以像跟主機(jī)交互一樣的和其他容器交互。當(dāng)指定公共端口或使用 links 來(lái)連接 2 個(gè)容器時(shí),容器就可以相互通信了(可以根據(jù)配置來(lái)限制通信的策略)。

從網(wǎng)絡(luò)架構(gòu)的角度來(lái)看,所有的容器通過(guò)本地主機(jī)的網(wǎng)橋接口相互通信,就像物理機(jī)器通過(guò)物理交換機(jī)通信一樣。

那么,內(nèi)核中實(shí)現(xiàn)名字空間和私有網(wǎng)絡(luò)的代碼是否足夠成熟?

內(nèi)核名字空間從 2.6.15 版本(2008 年 7 月發(fā)布)之后被引入,數(shù)年間,這些機(jī)制的可靠性在諸多大型生產(chǎn)系統(tǒng)中被實(shí)踐驗(yàn)證。

實(shí)際上,名字空間的想法和設(shè)計(jì)提出的時(shí)間要更早,最初是為了在內(nèi)核中引入一種機(jī)制來(lái)實(shí)現(xiàn) OpenVZ 的特性。 而 OpenVZ 項(xiàng)目早在 2005 年就發(fā)布了,其設(shè)計(jì)和實(shí)現(xiàn)都已經(jīng)十分成熟。

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)