このドキュメントで説明されているソフトウェアはサポートされていないか、拡張サポートが提供されています。
現在サポートされているリリースにアップグレードすることをお薦めします。
--privileged=trueオプションをdocker createまたはdocker runに指定すると、コンテナはホスト上のすべてのデバイスにアクセスできるので、セキュリティ・リスクを招く可能性があります。 より正確に制御するには、次のようにバージョン1.2.0以上のDockerで--cap-addオプションと--cap-dropオプションを使用して、コンテナの機能を制限します。
[root@host ~]#docker run --cap-add=ALL --cap-drop=NET_ADMIN -i -t --rm oraclelinux:6 /bin/bash
[root@9e9a632f6e92 /]#ip route del default
RTNETLINK answers: Operation not permitted
この例では、NET_ADMIN
以外のすべての機能をコンテナに付与し、コンテナがネットワーク管理操作を実行できないようにします。 詳細は、capabilities(7)
マニュアル・ページを参照してください。
ホスト上の個別のデバイスのみをコンテナで使用できるようにするには、--deviceオプションを使用してdocker run (バージョン1.2.0以上のDockerの場合)およびdocker create (バージョン1.3.0以上の場合)を実行します。
- --device=
host_devname
[:container_devname
[:permissions
]] host_devname
はホスト・デバイスの名前です。container_devname
はコンテナ内のデバイスの名前に対するオプション名です。permissions
は次のコードの組合せで、デバイスに対するコンテナの権限を指定します(オプション)。- m
mknod権限を付与します。 たとえば、mknodを使用すると、デバイス・ファイルの権限ビットまたはSELinuxコンテキストを設定できます。
- r
読取り権限を付与します。
- w
書込み権限を付与します。 たとえば、mkfsなどのコマンドを使用して、デバイスをフォーマットできます。
たとえば、--device=/dev/sdd:/dev/xvdd:rは、ホスト・デバイス/dev/sdd
をデバイス/dev/xvdd
として読取り専用権限でコンテナが使用できるようにします。
システムから簡単に取り外せるブロック・デバイスは、信用できないコンテナに対して使用可能にしないでください。