如何以非root用户身份运行Tensorflow Docker官方映像?

如何以非root用户身份运行Tensorflow Docker官方映像?,docker,tensorflow,deep-learning,dockerfile,Docker,Tensorflow,Deep Learning,Dockerfile,我目前使用Nvidia Docker运行官方Tensorflow Docker容器(GPU): 但是,我找不到为容器设置默认用户的方法。此容器的默认用户是“root”,这在安全性方面是危险的,并且存在问题,因为它允许root用户访问共享文件夹 假设我的主机与用户“CNNareCute”一起运行,有没有办法与同一用户一起启动我的容器 AFAIK,默认情况下docker映像以root用户身份运行。这意味着任何使用图像作为基础的Dockerfile都不必跳转来修改它。您可以在Dockerfil

我目前使用Nvidia Docker运行官方Tensorflow Docker容器(GPU):

但是,我找不到为容器设置默认用户的方法。此容器的默认用户是“root”,这在安全性方面是危险的,并且存在问题,因为它允许root用户访问共享文件夹


假设我的主机与用户“CNNareCute”一起运行,有没有办法与同一用户一起启动我的容器

AFAIK,默认情况下docker映像以root用户身份运行。这意味着任何使用图像作为基础的Dockerfile都不必跳转来修改它。您可以在Dockerfile中执行用户修改,这与您在任何其他linux设备上进行用户修改的方式相同,这将为您提供所需的配置

如果不先在容器中创建用户,您将无法(动态地)在容器中使用来自主机的用户,而且实际上他们是同名的独立用户

您可以作为特定用户在容器中运行命令和ssh,前提是容器中存在命令和ssh。例如,需要运行保留
www-data
特权的命令的PHP应用程序将按如下方式运行:

docker exec——用户www数据应用程序\u容器\u 1 sh-c“php某物”


因此,简而言之,您可以设置您喜欢的任何用户并使用他们来运行脚本,但默认值将是root,并且它将存在,除非您删除它,这也可能会产生影响…

Docker容器默认情况下以
root运行。您可以通过将
--user
传递给docker run命令来覆盖该用户。但是请注意,如果容器进程需要容器内部的根访问权限,这可能会有问题


您提到的安全问题在docker中使用处理。usernamespace基本上将容器中的用户映射到主机上的不同用户池。因此,您可以将容器中的root用户映射到主机上的普通用户,安全问题应该得到缓解。

用户名称空间似乎完美地满足了我的需要,您是否知道如何将“root”映射到“CNNareCute”用户?网上有许多教程,如和。基本上,重新映射是在范围上完成的,因此使用
cat/etc/passwd
查找用户
CNNareCute
的uid,并将其指定为
/etc/subuid
示例:
user::65536
中范围的开始。这样,容器(root)中的用户0将映射到主机上的用户