2017-12-28 31 views
0

ドッカーコンテナでpythonスクリプトを実行するために、このドッカーファイルを作成しました。 ここにユーザーを作成しています。このユーザーにドッカーイメージからコンテナを実行させたいと思います。ユーザーとドッカーコンテナの実行

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

Ubuntuにはコマンド 'yum'がありません。パッケージ管理に' apt'を使います。どのようにイメージを構築しましたか? – mviereck

答えて

0

ドッカーコンテナを実行するには、ルートとは異なるユーザーで2つの方法があります。


第一の可能性:あなたの例ではDockerfile Dockerfile

でユーザーを作成し、コマンドuseraddを持つユーザーnewuserを作成します。あなたは指示を書くことができます

USER newuser 

Dockerfileに書くことができます。以下のすべてのコマンドは、ユーザnewuserとして実行されます。これは、RUN命令だけでなく、docker runコマンドにも適用されます。


第二の可能性:オプション--user(画像で可能USER命令トップス)

あなたはdocker runオプション--userを使用することができます。唯一のユーザーが取得するUIDどの知らなくて

docker run --user 1000:100 

または名前を指定します。

docker run --user 1000 

または名前なしUIDとGIDを指定します。名前のないUIDのいずれかを指定するために使用することができます。

docker run --user newuser 

あなたは両方の方法を組み合わせることができます。指定した(!)UIDとGIDを使用してDockerfileにユーザーを作成し、必要なすべてのグループに追加します。一致する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'が私のために働いていました。 –

関連する問題