在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范围内。