ファイルシステムの一部が暗号化されている Docker コンテナーをセットアップする必要があります。その理由についてくどくど考えないようにしてください。答えは醜く、技術的というよりも政治的なものです。
問題が発生した場合、暗号化される特定の部分はホストからのボリューム マウントになりますが、最初はコンテナーの .xml でこれを試してい/tmp
ます。私たちの展開が機能する方法のため、コンテナの外でボリューム上で直接 ecryptfs を行うのは不便です。として実行されるシェルスクリプトの一部として内部でマウントを行いたいですCMD
。
コンテナーを実行すれば、これを行うことができます(この使い捨てのコメント--privileged
のおかげで) -しかし、それに付随するすべてのものを許可したくありません。試行錯誤の結果、追加によって最初の不可解なエラー ( ) が解決されることがわかりましたが、後でプロセスは次のように失敗します。--cap-add IPC_LOCK
Exiting. Unable to obtain passwd info
mount: block device /tmp/enc is write-protected, mounting read-only
mount: cannot mount block device /tmp/enc read-only
Error mounting eCryptfs: [-1] Operation not permitted
Check your system logs; visit <http://ecryptfs.org/support.html>
すべての機能を追加しても、ここでは役に立ちません。問題は別の場所にあります。
docker-run dockers は、パラメータに--privileged
関連する障壁も取り除き、設定が必要なものの例としてfuseを示し、「前」の例でかなり似たようなエラーを示していると述べています。ecryptfs と fuse にはある程度の共通点があるように見えるので、これは良い手がかりのように感じます。--device
--device
コマンドに追加しようとし--device /tmp/enc
ましたが、docker run
役に立ちませんでした(ホストはこのパスについて知りませんが、これは理にかなっています)。/dev/ecryptfs
また、 (それが何をするのかわかりませんが)があることに気づき、それを試しました。コンテナーは実行されましたが、ecryptfs マウントが機能しませんでした。
これができないかのように心配そうに見え始めています... 何かアイデアはありますか?