2016-07-31 23 views
1

我最近在玩碼頭集裝箱。我已經建立了一個docker主機,用戶是docker group的一部分,這樣他們就可以爲他們啓動容器了。但在用戶A啓動此方案的容器是由用戶B可以訪問所以我一直在尋找一種方式來隔離來自其他用戶的用戶容器,並試圖-u標誌添加到docker run命令,但得到了以下錯誤如何隔離其他用戶的碼頭集裝箱

FATA[0001] Error response from daemon: Cannot start container XXXXX: [8] System error: Unable to find user abc 

相同的命令與出-u國旗

用戶abc在主機上確實存在,但不知道我在這裏失蹤。

有人知道這裏有什麼問題嗎?

我在Ubuntu 14.04與泊塢1.6.2

回答

1

有權在主機上運行Docker容器的用戶有效地在該主機服務器上擁有完全的根訪問權限。他們可以輕鬆地運行docker run -it --rm -v /:/target debian並擁有一個與您的主機文件系統映射到該外殼的root shell。

因此,您不能從其他用戶直接訪問Docker引擎。爲了獲得所需的隔離,您需要在提供RBAC的Docker引擎頂部使用一個工具,並進行仔細的配置以限制每個用戶可以提交的內容。 Docker擁有自己的(通用控制平面),其他廠商也創建了類似的產品。或者,正如Mark所建議的那樣,給每個用戶自己的VM運行Docker的孤立實例。

1

碼頭工人是不是多租戶服務,這也解釋了爲什麼容器是在同一臺服務器上的用戶可見。

理論上,您可以爲每個用戶啓動一個docker守護進程,但是爲每個用戶提供一個可以運行其容器的虛擬機可能會更簡單。