【发布时间】:2020-12-09 18:22:40
【问题描述】:
我正在尝试让 Nginx 和 Mosquitto 以非 root 用户身份运行。我设置了用户选项并使用 Nginx 映像和安装了 Mosquitto 的 Ubuntu 映像。当我执行 docker top nginx 或 mosquitto 时,它会给我这个输出,表明它正在作为 systemd 运行。
admins@mmig:/folder/docker/folder$ docker top mosquitto UID PID PPID C STIME TTY 时间 CMD 系统+ 1116290 1116273 0 16:31? 00:00:00 /bin/sh -c mosquitto -v -c /etc/mosquitto/mosquitto.conf 系统+ 1116404 1116290 1 16:31? 00:00:00 mosquitto -v -c /etc/mosquitto/mosquitto.conf
如何让它以我希望它运行的用户身份运行,在这种情况下是 mosquitto?
【问题讨论】:
-
docker exec mosquitto ps -f有什么不同吗?您能否为minimal reproducible example 包含您的映像的 Dockerfile 和其他必要的源代码? -
是的,使用您包含的命令运行它确实表示它作为蚊子运行。我想知道为什么 systemd 从 docker 命令显示。我猜是因为“docker top mosquitto”正在从我的本地 /etc/passwd 文件中获取信息,这就是它显示为 systemd-resolve 的原因,因为它与容器中的 mosquitto 用户的 UID 相同。我将更改 mosquitto 用户的 UID。谢谢!!
标签: docker nginx containers