6

root として docker コンテナーで何も実行したくありません。そして、ミニマルなイメージが欲しい。

コンパイルした Go アプリをスクラッチ イメージで問題なく実行できます。しかし、ルートとして実行したくない場合(ルートとして実行していると仮定します)、取得したdockerfileでUSER nobodyを定義します

014/10/25 06:07:10 Error response from daemon: Cannot start container 
4822f34e54e20bb580f8cd1d38d7be3c828f28595c2bebad6d827a17b4c2fe21: 
finalize namespace setup user get supplementary groups Unable to find user nobody

ここに私のdockerfileがあります

FROM scratch
ADD lichtpunkt_go_linux_amd64 /lichtpunkt_go_linux_amd64
ADD web /web
USER nobody
CMD ["./lichtpunkt_go_linux_amd64"]
EXPOSE 3001

編集 - - - - - -

スクラッチが空であることがわかりました。非常に空です。

RUN useradd は /bin/sh -c useradd を実行しますが、 /bin/sh はありません。RUN ["useradd"] は直接実行します。しかし、useradd はありません。id は rootfs.tar を追加してゼロからビルドする必要があります。

コンテナ内でルートとして何も実行しないので、debianを使用します...

コンテナ内のルートをコンテナ外のルートであるかのように扱う

4

5 に答える 5

0

スクラッチが空であることがわかりました。非常に空です。

RUN useradd は /bin/sh -c useradd を実行しますが、 /bin/sh はありません。RUN ["useradd"] は直接実行します。しかし、useradd はありません。id は rootfs.tar を追加してゼロからビルドする必要があります。

コンテナ内でルートとして何も実行しないので、debianを使用します...

コンテナ内のルートをコンテナ外のルートであるかのように扱う

http://opensource.com/business/14/7/docker-security-selinux

于 2014-10-26T17:47:54.260 に答える
-2

USER コマンドで使用する前に、ユーザーを追加する必要があります。

FROM scratch
ADD lichtpunkt_go_linux_amd64 /lichtpunkt_go_linux_amd64
ADD web /web
RUN useradd nobody
USER nobody
CMD ["./lichtpunkt_go_linux_amd64"]
EXPOSE 3001
于 2014-10-26T14:51:41.717 に答える