在Linux容器内使用supervisord启动vncserver

时间:2013-10-03 19:52:44

标签: vnc supervisord docker lxc

我试图在启动时使用supervisord为lxc容器启动vncserver(我不认为容器是相关的)。问题是机器以root身份启动。我的supervisord程序部分如下:

[program:vnc]
directory=/
user=ubuntu
environment=HOME="/home/ubuntu",USER="ubuntu"
priority=901
command=/usr/bin/vncserver -fg -geometry 1024x768 :1

但是,我发现日志文件显示其尝试创建密码,尽​​管/home/ubuntu/.vnc/passwd中已存在密码

想知道我是否遗漏了什么?用户是否应该在运行命令之前更改用户$ HOME和$ USER?

1 个答案:

答案 0 :(得分:0)

您可以定义运行具有特定用户名称(如果存在)的容器或UID,而图像/容器中没有任何现有用户。

Docker文档:https://docs.docker.com/engine/reference/run/#user

  

USER

     

root(id = 0)是容器中的默认用户。图片   开发者可以创建其他用户。这些用户可以通过   名称。传递数字ID时,用户不必存在   容器。

     

开发人员可以设置默认用户来运行第一个进程   Dockerfile USER指令。启动容器时,操作员   可以通过传递-u选项覆盖USER指令。

-u="": Username or UID
     

注意:如果传递数字uid,则它必须在范围内   0-2147483647。