デフォルトの.dockerデーモンによってファイルが作成されたときに、ファイルに割り当てられているデフォルトの権限を変更しようとしていますumask
。 dockerデーモンサービスはrootとして実行され、umask
rootを使用してファイルを生成します。umask
コマンドを追加/etc/init.d/docker
し、必要なコマンドをumask(000)
開始 - 停止デーモンにオプションとして渡して変更しようとしましたが、そのうち何も機能しないようです。 dockerデーモンによって生成されたファイルに割り当てられているデフォルト権限をどのように変更しますか?
編集:コンテナの内部ではなく、ホストコンピュータでdockerデーモンによって生成されたファイルとフォルダのデフォルト権限を設定しようとしています。たとえば、ホストのコンテナにマッピングされたフォルダが存在しない場合、dockerは自動的にフォルダを作成し、デフォルトのumask(つまりルートのumask)に基づいて権限を割り当てます。
答え1
Dockerコンテナは通常、非特権モードで実行するように設計されています。コンテナのプロセスがルートとして実行されると、プロセスuid 0は他のユーザー(通常は「nobody」)でホストオペレーティングシステムにマップされます。コンテナ内のすべてのプロセスがホストオペレーティングシステムからファイルを読み取るには、ファイルを誰でも読み取ることができる必要があります。おそらく(コードに慣れていないので注意してください)Dockerは、-vオプションで作成したディレクトリをコンテナから実際に読み取ることができることを確認するためにumask設定を無視します。
ホストオペレーティングシステムにアクセスできるbtrfsまたはoverlayfsを介してコンテナ内に生成されたファイルを一般的に読み取ることができるかどうかはわかりません。また、これらのファイル生成がコンテナ内で処理されるのか、ホストOSで処理されるのかはわかりません。