【问题标题】:Running Docker containers as non-root shows they are running as systemd+以非 root 身份运行 Docker 容器表明它们以 systemd+ 身份运行
【发布时间】: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


【解决方案1】:

使用“docker top mosquitto”时,我看到的是本地主机 /etc/passwd 文件的 UID,而不是容器中 /etc/passwd 文件中的 UID。为了解决这个问题,我必须更改容器中 mosquitto 用户的 UID。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-06-18
    • 2019-06-24
    • 1970-01-01
    • 2020-02-19
    • 2020-11-16
    • 2018-07-02
    • 1970-01-01
    相关资源
    最近更新 更多