2015-09-04 90 views
5

當創建Docker容器時,我一直遇到未反映在容器中的UID/GID問題(我意識到這是設計)。我在尋找的是一種保持主機權限合理的方法,和/或從我的Docker容器中的主機用戶/組帳戶中複製UID/GID。例如:Docker複製主機容器中的UID/GID

主機 -

woot4moo:X:504:504:woot4moo:/首頁/ woot4moo:/斌/慶典

我想在泊塢容器此相同的行爲。話雖如此,這甚至是做這種事情的正確方法嗎?我的信念是我可以簡單地運行:

useradd -u 504 -g 504 woot4moo 

作爲我的Dockerfile的一部分,但我不確定這是否有效。

回答

5

您不希望將其作爲圖像構建過程的一部分(在您的Dockerfile中)運行,因爲有人運行容器的主機通常是而不是您正在其上構建映像的主機。

解決的一個辦法是通過環境變量傳遞UID/GID信息:

docker run -e APP_UID=100 -e APP_GID=100 ... 

然後有一個ENTRYPOINT腳本,其中包括像運行CMD之前如下:

useradd -c 'container user' -u $APP_UID -g $APP_GID appuser 
chown -R $APP_UID:$APP_GID /app/data 
相關問題