如何以非root用户身份运行docker镜像?

Str*_*ger 17 docker

我是码头工人的新手.当我使用命令运行像ubuntu图像的docker图像时,

sudo docker run -i -t ubuntu:14.04
Run Code Online (Sandbox Code Playgroud)

默认情况下,它会像这样以root身份进入容器. 在此输入图像描述

我搜索了这个,但我无法得到任何如何以非root用户身份启动docker镜像,因为我完全是这个主题的首发.

如果有人解释如何以非root用户身份运行docker镜像,那将会很棒.

Tho*_*eil 19

docker run命令具有允许您指定其他用户的-u参数.在您的情况下,假设您有一个foo在docker镜像中命名的用户,您可以运行:

sudo docker run -i -t -u foo ubuntu:14.04 /bin/bash
Run Code Online (Sandbox Code Playgroud)

注意:-u参数等同USER于Dockerfile 的指令.

  • 请不要将您的用户添加到 docker 组。事实上,你永远不应该将任何用户添加到 docker 组,除非在非常非常特殊的情况下(我还想不出来)。docker 组是 root 等效的。一旦进入 docker 组,用户就可以免费进行提权。这在互联网上有记录,甚至在 [Docker 文档](https://docs.docker.com/engine/installation/linux/ubuntulinux/#/manage-docker-as-a-non-root) 中有免责声明-用户)。 (2认同)