ユーザーネームスペースの再マップを有効にしていますが、ドッカーコンテナーのプロセスは「ホスト」のUIDで実行されています。Docker:デーモンで有効になっていてもユーザーネームスペースの再マッピングが機能していません
OSは次のとおりです。
> sudo docker --version
Docker version 1.12.0, build 8eab29e
dockerd構成とUbuntuの4.4.0-21の16.04は、つまり、私は手動で実行したとき
> grep "DOCKER_OPTS" /etc/default/docker
DOCKER_OPTS="--dns 8.8.8.8 --dns 8.8.4.4 --ipv6 --userns-remap=default"
下位のUIDとGIDマッピングは、作成されているあります上記のdocker opts文字列を使用します。
> grep "dock" /etc/sub*
/etc/subgid:dockremap:362144:65536
/etc/subuid:dockremap:362144:65536
ただし、I(再)開始時にサブUID/GIDは作成されませんでしたサービスとしてのckerd - 手動で実行する必要がありました。
また、dockerdを再起動した後、コンテナ内のすべてのプロセスは再マップされた範囲にはなくホストの1to1になります。つまり、コンテナルートプロセスは依然としてUID = 0です。
> ps -xaf --forest -o pid,ruid,ruser,cmd | grep top
PID RUID RUSER CMD
23015 0 root | \_ sudo docker run -t -i ubuntu /usr/bin/top
23016 0 root | \_ docker run -t -i ubuntu /usr/bin/top
どうやら、ホスト上の容器の外にチェックしたときにちょうど
> sudo docker run -t -i ubuntu /usr/bin/top
...
トップ
例えば、試験容器のランニングは、UID = 0により、トップ走行を持って、下位のUIDへの再マッピングではありませんドッカーをデーモンとして実行しているときに私のために働いていますか?