2017-12-28 13 views
0

docker 컨테이너에서 파이썬 스크립트를 실행하기 위해이 도커 파일을 만들었습니다. 여기 사용자를 만들고 있는데이 사용자가 도커 이미지에서 컨테이너를 실행하길 원합니다.사용자가있는 도커 컨테이너 실행

FROM ubuntu:16.04 
MAINTAINER "Vijendra Kulhade" <[email protected]> 
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을 사용하고 있습니다. 나는 이것이 컨테이너를 시작하고 [email protected]으로 로그인 할 것으로 예상했다. 그러나 그것은 일어나지 않습니다. 어떻게 달성 할 수 있는지 알려주십시오.

+0

당신이 일어날 것을 볼 수있는 '고정 표시기의 logs'를 실행할 수 있습니까? – dvnguyen

+0

우분투에는'yum' 명령이 없으며 패키지 관리를 위해'apt'를 사용합니다. 어떻게 그 이미지를 만들었습니까? – mviereck

답변

0

루트와 다른 사용자로 도커 컨테이너를 실행하는 데는 두 가지 방법이 있습니다.


첫 번째 가능성 : 귀하의 예를 Dockerfile에서

Dockerfile

에서 사용자를 작성, 당신이 명령 useradd와 사용자 newuser을 만들 수 있습니다. Dockerfile에 지침

USER newuser 

을 작성할 수 있습니다. 다음의 모든 명령은 사용자 newuser으로 실행됩니다. 이는 RUN 명령어뿐만 아니라 docker run 명령어에도 적용됩니다.


두 번째 가능성 : 옵션 --user 당신은 docker run 옵션 --user을 사용할 수 있습니다

(이미지의 수 USER 명령을 꼭대기). 사용자 만이 얻을 것이다 UID 몰라도

docker run --user 1000:100 

또는 이름을 지정합니다

docker run --user 1000 

아니면 이름없이 UID 및 GID를 지정합니다 : 이름없이 UID를 지정하는 데 사용할 수 있습니다 :

docker run --user newuser 

당신은 두 가지를 결합 할 수 있습니다. Dockerfile에 지정된 (!) UID 및 GID를 사용하여 사용자를 만들고 원하는 모든 그룹에 추가하십시오. 일치하는 docker run --user UID:GID을 사용하면 컨테이너 사용자는 Dockerfile에 지정한 모든 속성을 갖게됩니다.


(내가 --security-opt label=user:newuser와 접근 방식을 이해하지 못하는, 하나 잘못 또는 뭔가 내가 대해 아무것도 알 수 없습니다.)

+0

필자는 문서를 살펴보고'--security-opt label = user : newuser'를 발견했을 것입니다. 아마 잘 이해하지 못했을 것입니다. 'docker run --user newuser -i -t image : version/bin/bash'가 저에게 효과적이었습니다. –