【问题标题】:How to run docker container as non-root user and how to share the docker image to others?如何以非 root 用户身份运行 docker 容器以及如何将 docker 镜像分享给其他人?
【发布时间】:2018-10-23 06:55:57
【问题描述】:

我遇到了一个场景,我需要构建一个需要以非 root 用户身份运行的 docker 镜像。为了详细解释,在 docker build 期间,我正在尝试安装一个需要以非 root 用户身份安装的服务。所以我环顾了一些像LinkLink 这样的东西,它们展示了如何以非root 用户身份运行Docker 容器。我对如何在 Dockerfile 中创建用户有点困惑。我在 dockerfile 中使用了以下几行,

RUN useradd -r -u 1001 -g appuser appuser
USER appuser

我已经成功创建了镜像,并且容器似乎是作为 appuser 启动的。但是我需要将这个 docker 镜像提供给客户,所以我的问题是,

  1. 我需要在我的客户端计算机上创建用户 appuser 吗?
  2. 如果我不创建任何此类用户,docker 在客户端计算机中的行为如何?

提前致谢。

【问题讨论】:

    标签: linux docker docker-compose dockerfile root


    【解决方案1】:

    我需要在我的客户端机器上创建用户 appuser 吗?

    RUN 命令不是在您的客户端计算机上创建它,而是在容器上创建它。事实上,您的 Dockerfile 中的所有说明都适用于正在构建的映像以及从中启动的容器。

    如果我不创建任何此类用户,docker 在客户端计算机中的行为如何?

    同样的答案。客户端机器上没有安装任何东西(除了 docker,我认为这是给定的)。

    【讨论】:

    • 我之所以感到困惑,是因为有些人建议在创建映像时在 dockerfile 中提供用户的 uid。所以我觉得如果我提供了 uid,那么客户端机器上应该可以使用相同的 uid
    猜你喜欢
    • 1970-01-01
    • 2018-06-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-24
    • 2020-12-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多