在Linux容器内使用supervisord启动vncserver
我试图启动vncserver使用supervisord在启动时间的lxc容器(我不认为是一个容器是相关的)。 问题是机器以root身份启动。 我的supervisord程序部分如下所示:
[program:vnc] directory=/ user=ubuntu environment=HOME="/home/ubuntu",USER="ubuntu" priority=901 command=/usr/bin/vncserver -fg -geometry 1024x768 :1
但是,我发现日志文件显示它试图创build一个密码,虽然已经在/home/ubuntu/.vnc/passwd中存在一个密码
想知道我是否失去了一些东西? 运行命令之前,用户是不是应该更改用户$ HOME和$ USER?
您可以定义运行具有特定用户名(如果存在)或UID的容器,而图像/容器中没有任何现有用户。
Docker文档: https : //docs.docker.com/engine/reference/run/#user
用户
root(id = 0)是容器内的默认用户。 图像开发人员可以创build额外的用户。 这些用户可以通过名称访问。 传递数字标识时,用户不必在容器中存在。
开发人员可以设置默认用户使用Dockerfile USER指令运行第一个进程。 启动容器时,操作员可以通过传递-u选项来覆盖USER指令。
-u="": Username or UID
注意:如果你传递一个数字uid,它必须在0-2147483647范围内。