2016-04-08 17 views
0

ドッカーを使用中に問題が発生しました。 私はubuntuベースのドッカーコンテナーを持っています。そしてコンテナ内では、ユーザIDはデフォルトでrootになっていますが、これは私の予想ではありません。ユーザIDはabcで、ドッカーを実行しているHOST OS上の別のユーザアカウントです。 私は、次の方法を試してみましたが、すべて失敗していますroot以外の新しいユーザーでドッカーコンテナを作成して実行するにはどうすればよいですか?

su abc; 

その後、コンテナを持ち出すが、コンテナにログインするdocker run xxxを実行し、コンテナ内のユーザーがまだrootです。

次にドッキングウィンドウの実行のために-uフラグを追加することによって:よう:

docker run -t -i -u abc ubuntu /bin/bash 

ドッカショーのエラーをunable to find user abc

は、いくつかのいずれかは、どのようにそれを修正する教えてもらえますか?

または、ドッカーのサポートで、ユーザーがデフォルトのrootよりも特定のコンテナを実行していますか?

+1

をユーザーabcとbashプロンプトが表示されるはずですroot以外のユーザーとして実行できますが、最初に(Dockerfileを使用して)イメージ内でユーザーを作成する必要があります。また、Dockerファイルに 'USER'行がある場合、そのユーザーはログイン時にデフォルトのユーザーになります。 –

答えて

1

ユーザーをDockerイメージ内で作成できます。しかしそのためには、ベースイメージを拡張する必要があります。たとえば、あなたが以下のようにUbuntuの中で、ユーザabcを作成することができ、

FROM ubuntu:14.04 

RUN apt-get update 

# Replace 1000 with your user/group id 
RUN export uid=1000 gid=1000 && \ 
    mkdir -p /home/abc && \ 
    echo "abc:x:${uid}:${gid}:Abc,,,:/home/abc:/bin/bash" >> /etc/passwd && \ 
    echo "abc:x:${uid}:" >> /etc/group && \ 
    echo "abc ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers.d/abc && \ 
    chmod 0440 /etc/sudoers.d/abc && \ 
    chown ${uid}:${gid} -R /home/abc 

USER abc 
ENV HOME /home/abc 
WORKDIR $HOME 
CMD /bin/bash 

次に、あなたがそれをビルドして実行、

docker build -t abc . 
docker run -it abc bash 

あなたは、以下のように

[email protected]<container-hostname>:~$ 
関連する問題