「Docker」の版間の差分

提供: セキュリティ
移動: 案内検索
(ページの作成:「Docker とは、Linux用のアプリケーション実行環境のコンテナです。Dockerは、Go言語で開発され、Linuxの機能を利用...」)
(相違点なし)

2015年1月10日 (土) 14:03時点における版

Docker とは、Linux用のアプリケーション実行環境のコンテナです。Dockerは、Go言語で開発され、Linuxの機能を利用します。

読み方

Docker
どっかー

概要

オープンソースのコンテナ型仮想化ソフトウェアのDockerは、Docker社が開発しています。LinuxDockerは、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は、Linuxcgroupsnamespaceの技術を用いて、コンテナを実現しています。Dockerの提供する機能は、本質的には、LXCと同じであるため、セキュリティリスクも同じと考えられます。

Dockerは、rootの権限で実行されるため、コンテナroot権限が必要となります。root権限が必要なる原因は、Linuxカーネルにあります。

DockerデーモンとRest API 経由のアクセスを保護する必要があります。

Docker でのセキュリティ改善目標は、以下の通りです。

  • コンテナは、root ユーザを 非 root ユーザにマップする。権限昇格の影響を緩和する。
  • Docker デーモンを root 権限なしで動作可能にする。特権が必要となる操作は、限定されたスコープを持ち、監視されているサブプロセスに委譲する。

関連項目