如何以非root用户身份运行官方Tensorflow Docker镜像?
我目前正在与NVIDIA技术的码头工人运行官Tensorflow泊坞集装箱(GPU):如何以非root用户身份运行官方Tensorflow Docker镜像?
- https://hub.docker.com/r/tensorflow/tensorflow/
-
不过,我不能找到一种方法来设置默认为用户集装箱。此容器的默认用户是“root”,这在安全性方面很危险,并且存在问题,因为它允许根访问共享文件夹。
假设我的主机与用户“CNNareCute”一起运行,有什么方法可以用同一个用户启动我的容器吗?
回答:
默认情况下的码头集装箱运行为root
。您可以通过将--user <user>
传递给docker run命令来覆盖用户。但是请注意,如果容器进程需要在容器中进行根访问,这可能会产生问题。
您提到的安全问题在Docker中使用User Namespaces进行处理。用户名空间基本上将容器中的用户映射到主机上的不同用户池。因此,您可以将容器内的根用户映射到主机上的普通用户,应该减轻安全问题。
回答:
AFAIK,docker映像默认作为root运行。这意味着任何使用图像作为基础的Dockerfile,都不必跳过修改它。您可以在Dockerfile中执行用户修改 - 就像您在任何其他可以给您所需的配置的Linux机器上一样。
您将无法在容器中使用容器中的主机(动态)用户,而无需先在容器中创建它们 - 而且它们实际上是具有相同名称的单独用户。
您可以将容器中的命令和ssh作为特定用户运行,只要它存在于容器中即可。
docker exec --user www-data application_container_1 sh -c "php something"
因此,在短期,你可以设置你喜欢的任何用户,并利用它们来运行脚本,但默认的:例如,一个PHP应用程序需要保留www-data
权限运行的命令,将运行如下将是根,它将存在,除非你删除它,这也可能会产生影响...
以上是 如何以非root用户身份运行官方Tensorflow Docker镜像? 的全部内容, 来源链接: utcz.com/qa/262066.html