问题是docker需要以root用户身份运行,因此maven命令需要以root用户身份运行,
不可以,可以使用
-u(
--user)参数完成docker运行,以便在容器内使用非root用户。
以非root用户身份运行docker
您的用户(在主机上)需要成为
docker组的一部分。然后,您可以与该用户一起运行docker服务。
如所评论,这不是很安全。
看到:
- “
chrisfosterelli/dockerrootplease
” - “ 了解uid和gid在Docker容器中如何工作 ”
最后一个链接以以下发现结尾:
- 如果有一个已知的uid,容器内的进程正在执行,则可能很简单,例如限制对主机系统的访问,以使来自容器的uid具有有限的访问权限。
*更好的解决方案是使用来启动具有已知uid的容器--user(您也可以使用用户名,但请记住,这只是从主机名用户名系统提供uid的一种更友好的方式),
然后限制对主机上uid的访问您已经确定容器将以运行 。- 由于uid和用户名(以及gid和组名)是如何从容器映射到主机的,因此指定运行容器化进程的用户可以使该进程看起来由容器内部与外部的不同用户拥有。
关于最后一点,您现在具有
用户名称空间(userns)重新映射 (自docker1.10起,但我建议使用17.06,因为问题33844)。



