与用户一起运行docker容器
我创建这个docker文件是为了在docker容器中运行python脚本。 我正在这里创建一个用户,我希望该用户从docker映像运行容器与用户一起运行docker容器,docker,dockerfile,Docker,Dockerfile,我创建这个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 i
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
来自ubuntu:16.04的
维修人员“Vijendra Kulhade”
快速运行yum-makecache
运行yum-y更新
运行yum-y安装gcc
运行yum-y安装zlib-devel
运行yum-y安装openssl-devel
运行yum-y安装python setuptools python setuptools-devel
运行yum-y安装libyaml
运行useraddnewuser-d/home/newuser
运行chown-R newuser.newuser/usr/bin/
运行chown-R newuser.newuser/usr/lib64/
运行chown-R newuser.newuser/usr/lib/
环境https_代理=http://proxy.xxxx.com:8080
运行简易安装程序
运行pip-V
运行pip安装--升级pip
运行pip安装--升级--强制重新安装setuptools
我使用此命令创建图像
docker build-t python容器。
我正在使用
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中。以下所有命令都将作为usernewuser
执行。这适用于以下所有RUN
指令以及docker RUN
命令
第二种可能性:选项
--用户
(最可能的用户
图像中的说明)
您可以使用docker run
选项--user
。它可用于指定不带名称的UID:
docker run --user 1000
docker run --user 1000:100
或指定不带名称的UID和GID:
docker run --user 1000
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日志看看会发生什么吗?Ubuntu没有命令yum
,它使用apt
来管理包。您是如何构建该图像的?我刚刚浏览了文档,发现--security opt label=user:newuser
可能我不太理解它。但是docker-run--user newuser-i-t image:version/bin/bash
对我来说很有效。