2015-04-27 26 views
7

我想使用Docker隔離在HPC Unix集羣中使用的科學應用程序。科學軟件通常具有異國情調的依賴關係,因此使用Docker隔離它們似乎是一個好主意。這些計劃將作爲工作而不是作爲服務來運行。是否有「多用戶」Docker模式,例如爲科學集羣?

我想讓多個用戶使用Docker,並且用戶應該彼此隔離。這可能嗎?

我執行了本地Docker安裝,並在Docker組中有兩個用戶。對docker images的電話顯示兩個用戶的結果相同。

此外,作業應該在主叫用戶的UID下運行,而不是作爲根用戶運行。

這樣的設置是否可行?它以前做過嗎?這是記錄在任何地方?

+1

Intersiting的想法,但只有docker我看不到解決方案。你是否已經查閱過像http://shipyard-project.com/這樣的管理工具。可能你可以改變那裏的usermangement使它對你有用。 –

回答

1

好的,我認爲會有越來越多的解決方案彈出來。我會盡力在將來更新以下列表:

  • udocker執行Docker容器爲用戶
  • Singularity(榮譽給費羅)是另一種基於Linux的解決方案的容器
3

不要忘記DIND(碼頭工人在碼頭工人):jpetazzo/dind

你可以按用戶奉獻一個碼頭工人,和那些搬運工容器之一內,用戶可以在一個碼頭工人容器啓動工作。

+0

請注意,dind容器需要使用--privileged標誌來運行,因此攻擊者可能會忽略隔離(例如,通過掛載設備)。 –

1

我也對Docker的這種可能性感興趣,原因類似。 有幾個問題我能想到的:

  1. 的泊塢守護程序運行作爲根,該搬運工組 與有效主機根權限提供任何人(由 例如泄漏權限安裝主機/目錄爲根目錄) 。
  2. 如上所述的多用戶隔離
  3. 不知道這將與任何現有的負載均衡器發揮多大作用?

我碰到移位器可能是值得一看進來的部分地解決了#1: http://www.nersc.gov/research-and-development/user-defined-images/

而且我知道有討論使用內核用戶命名空間提供映射容器:根 - >主機:非特權用戶,但我不確定這是否發生。

+0

似乎用戶命名空間已從Docker 1.7中刪除。看起來他們引入了一個安全問題,因爲引入了libnetwork,希望他們能夠在v1.8上着陸 –

0

有一個正式支持Docker鏡像,允許在Docker(dind)中運行Docker,可在此處獲得:https://hub.docker.com/_/docker/。這樣,每個用戶都可以擁有自己的Docker守護進程。首先,啓動守護進程實例:

docker run --privileged --name some-docker -d docker:stable-dins 

請注意,--privileged標誌是必需的。接下來,從第二個容器連接到該實例:

docker run --rm --link some-docker:docker docker:edge version 
相關問題