特権モードでコンテナを実行している場合は、すべてのカーネル機能を備えているのでしょうか、それとも別々に追加する必要がありますか? 「ルート」は、ホスト上のルートよりも少ない権限を持っているとして、ドッキングウィンドウコンテナが実行中from RedHat covering this特権付きコンテナと機能
をカバーする良い記事があり
特権モードでコンテナを実行している場合は、すべてのカーネル機能を備えているのでしょうか、それとも別々に追加する必要がありますか? 「ルート」は、ホスト上のルートよりも少ない権限を持っているとして、ドッキングウィンドウコンテナが実行中from RedHat covering this特権付きコンテナと機能
をカバーする良い記事があり
特権モードで実行すると、実際にコンテナにすべての機能が提供されます。 は、しかし、常にあなたがドッカーのドキュメントを見れば、それは を必要とする最低限の要件は、彼らはまた、このフラグに(--privileged)
フルコンテナ機能
指すコンテナを与えることをお勧めです - 特権フラグはコンテナにすべての機能を提供し、デバイスcgroupコントローラによって強制されるすべての制限を解除します。言い換えれば、コンテナは、ホストができるすべてのことを行うことができます。このフラグはDocker内でDockerを実行するような特殊な使用を可能にするために存在します。
--cap-add
フラグを使用して特定の機能を与えることができます。これらの機能の詳細については、man 7 capabilities
を参照してください。リテラル名を使用することができます。 --cap-add CAP_FOWNER
。
、それはまだ共有生産対開発環境として使用して(ご使用のケースに応じて、硬化が必要な場合がありますクラスタ)
この記事は、私はあなたが私がのNVMeドライブを持っていますが、それはすべてのために動作します私のラップトップ上でこれをやっている--privileged
を使用してコンテナを実行したいことはありません理由についての情報を追加したいGoogle検索のランクに高いためホスト。
docker run --privileged -t -i --rm ubuntu:latest bash
まずコンテナから/ procファイルシステム
をテストするために、マイナーな何かを行うことができます:
[email protected]:/# cat /proc/sys/vm/swappiness
60
[email protected]:/# echo "61" > /proc/sys/vm/swappiness
[email protected]:/# cat /proc/sys/vm/swappiness
60
OKそれは、コンテナまたはホストのためにそれを変更しましたか?
$ cat /proc/sys/vm/swappiness
61
OOPS!、私たちは任意にホストのカーネルパラメータを変更することができます。しかし、これはちょうどDOSの状況で、親ホストから特権情報を収集できるかどうかを確認できます。
/sys
ツリーを歩き、ブートディスクのメジャーマイナー番号を見つけます。
注:私は2つのNVMeドライブとコンテナを持っているが、別のドライブ
[email protected]:/proc# cat /sys/block/nvme1n1/dev
259:2
OKでLVMの下で実行されていることは場所dbusのルールはありませんが自動スキャンでデバイスファイルを作成することができます。
[email protected]:/proc# mknod /devnvme1n1 b 259 2
[email protected]:/proc# sfdisk -d /devnvme1n1
label: gpt
label-id: 1BE1DF1D-3523-4F22-B22A-29FEF19F019E
device: /devnvme1n1
unit: sectors
first-lba: 34
last-lba: 2000409230
<SNIP>
OK、私たちはブートディスクを読むことができます、パーティションのいずれかのデバイスファイルを作ることができます。開いているのでマウントすることはできませんが、コピーするにはまだdd
を使用できます。
[email protected]:/proc# mknod /devnvme1n1p1 b 259 3
[email protected]:/# dd if=devnvme1n1p1 of=foo.img
532480+0 records in
532480+0 records out
272629760 bytes (273 MB, 260 MiB) copied, 0.74277 s, 367 MB/s
[OK]をマウントして、私たちの努力がうまくいったかどうかを確認してください。
[email protected]:/# mount -o loop foo.img /foo
[email protected]:/# ls foo
EFI
[email protected]:/# ls foo/EFI/
Boot Microsoft ubuntu
だから基本的にあなたは、誰もが上--privileged
コンテナを起動できるようにする任意のコンテナのホストは、彼らにそのホスト上のすべてのコンテナへのrootアクセス権を与えることと同じです。
残念ながらドッキングウィンドウのプロジェクトは、信頼できるコンピューティング・モデル、および認証の外を選択したプラグインはこれを防御する方法はありませんので、必ず--privileged
を使用して対に必要な機能を追加する側のエラーはどのような方法があります特定のアプリケーションに必要な機能を確認します。これはほとんどのアプリケーションでは文書化されていないようです。 – codefx
@codefxここでの経験則はありません。アプリケーションや実行時に呼び出されるシステムコールによって異なります。ハブから既製のドッカー画像を使用している場合は、おそらくそこに記載されています。何かを自分で書くのなら、特別な機能が必要なカーネルAPIを知っているはずです – buddy123