gpt4 book ai didi

docker - 与用户一起运行 docker 容器

转载 作者:行者123 更新时间:2023-12-02 15:03:46 25 4
gpt4 key购买 nike

我创建了这个 docker 文件来在 docker 容器中运行 python 脚本。我在这里创建一个用户,我希望这个用户从 docker 镜像运行容器。

FROM ubuntu:16.04
MAINTAINER "Vijendra Kulhade" <xxxxxx@xxxxxx.com>
RUN yum makecache fast
RUN yum -y update
RUN yum -y install gcc
RUN yum -y install zlib-devel
RUN yum -y install openssl-devel
RUN yum -y install python-setuptools python-setuptools-devel
RUN yum -y install libyaml
RUN useradd newuser -d /home/newuser
RUN chown -R newuser.newuser /usr/bin/
RUN chown -R newuser.newuser /usr/lib64/
RUN chown -R newuser.newuser /usr/lib/
ENV https_proxy=http://proxy.xxxx.com:8080
RUN easy_install pip
RUN pip -V
RUN pip install --upgrade pip
RUN pip install --upgrade --force-reinstall setuptools

我使用这个命令来创建图像docker build -t python-container .我正在使用docker run --security-opt label=user:newuser -i -t python-container:latest/bin/bash 从镜像运行容器。我原以为这会启动容器并使用 newuser@xxxxxxxx 登录。但它没有发生。请告诉我如何实现。

最佳答案

有两种可能性可以使用不同于 root 的用户运行 docker 容器。


第一种可能:在Dockerfile中创建用户

在您的示例 Dockerfile 中,您使用命令 useradd 创建用户 newuser。你可以写指令

USER newuser

在 Dockerfile 中。以下所有命令将作为用户 newuser 执行。这适用于所有以下 RUN 指令以及 docker run 命令。


第二种可能性:选项--user(图片中最可能的USER指令)

您可以使用docker run 选项--user。它可用于指定没有名称的 UID:

docker run --user 1000

或者指定不带名称的 UID 和 GID:

docker run --user 1000:100

或者只指定一个名称而不知道用户将获得哪个 UID:

docker run --user newuser

您可以将这两种方式结合起来。在 Dockerfile 中创建一个具有指定 (!) UID 和 GID 的用户,并将他添加到所有需要的组中。使用匹配的 docker run --user UID:GID,您的容器用户将拥有您在 Dockerfile 中赋予他的所有属性。


(我不明白你用 --security-opt label=user:newuser 的方法,要么是错误的,要么是我一无所知。)

关于docker - 与用户一起运行 docker 容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48015731/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com