dotCloudのシニアエンジニアであるJérôme Petazzoni氏は,Dockerのセキュリティに関する改善状況を調査して,他の仮想化あるいはコンテナ系技術と比較し,その結果を最近のブログ記事 "CONTAINERS & DOCKER: HOW SECURE ARE THEY?" で発表した。そこで氏が論証しているのは,高度な設定や専門知識を要するテクニック,あるいはLinuxに既存のサポート技術 (例. SELinux) を利用せずに,Dockerをセキュアにするための技術である。
Dockerではcgroupsとnamespaceという,2つのLinuxの技術を用いてコンテナを実現している。氏は,Dockerの提供する機能が本質的にLXCと同じであると同時に,セキュリティリスクの面でも同じであることを認めている。Dockerが起動するコンテナの設定は,最小特権の原則に従っている。ただしDocker自体がrootとして動作する必要があるため,コンテナにおいてrootでなくてはならない。root権限が必要になる制限要素は,現時点ではおもにLinuxカーネルである。従ってユーザは,DockerデーモンとREST api経由のアクセスを保護するように注意しなければならない。この事態について氏は,今後改善されるだろうと述べている:
従ってDockerでは,新たな2つのセキュリティ改善の実施を最終目標としています:
- コンテナのrootユーザを,Dockerホストの非rootユーザにマップすることで,コンテナ - ホストの権限昇格に関する影響を緩和する。
- Dockerデーモンをroot特権なしで動作可能にする。そのような特権を要する操作は,仮想ネットワークセットアップ,ファイルシステム管理のようにそれぞれ独自の(非常に限定された)スコープを持ち,十分に監査されたサブプロセスに委譲する。