「Docker」の版間の差分
提供: セキュリティ
(相違点なし)
|
2015年1月10日 (土) 14:03時点における版
Docker とは、Linux用のアプリケーション実行環境のコンテナです。Dockerは、Go言語で開発され、Linuxの機能を利用します。
読み方
- Docker
- どっかー
概要
オープンソースのコンテナ型仮想化ソフトウェアのDockerは、Docker社が開発しています。LinuxのDockerは、LXCの技術を使用していました。
Dockerでは、コンテナと呼ばれる隔離された空間でプロセスを実行します。
隔離空間
|
隔離空間
|
プロセス | プロセス | ||||
OS | |||||||
物理マシン |
Dockerの特徴
- コンテナ型であるため、仮想マシン型よりも軽量で、高速です。
- Docker 社がコンテナイメージのリポジトリ Docker Hub を提供している。
- コンテナの作成からアプリケーションのインストールまでの手順を Dockerfile と呼ばれるテキストファイルに定義できる。
- Dockerのコンテナは、揮発性で、コンテナ内の変更は、コンテナを破棄するときに消えます。フィアルシステムには、AUFS(Another Union File System)を利用しています。
Docker と LXC
Docker 0.9からは、LXC(Linux Containers)に依存しません。libcontainerドライバが実装され、LXCなしに稼働できます。
- Docker
- libcontainer
- libvirt
- lxc
- systemd-nspawn
Dockerのセキュリティ
Dockerは、Linuxのcgroupsとnamespaceの技術を用いて、コンテナを実現しています。Dockerの提供する機能は、本質的には、LXCと同じであるため、セキュリティリスクも同じと考えられます。
Dockerは、rootの権限で実行されるため、コンテナもroot権限が必要となります。root権限が必要なる原因は、Linuxカーネルにあります。
DockerデーモンとRest API 経由のアクセスを保護する必要があります。
Docker でのセキュリティ改善目標は、以下の通りです。
- コンテナは、root ユーザを 非 root ユーザにマップする。権限昇格の影響を緩和する。
- Docker デーモンを root 権限なしで動作可能にする。特権が必要となる操作は、限定されたスコープを持ち、監視されているサブプロセスに委譲する。