web-dev-qa-db-ja.com

「lxd」とlxc / dockerの違いは何ですか?

ご質問

  • Lxdは、単一のプロセスだけでなく、コンテナ内で完全なオペレーティングシステム機能をどのように提供しますか?
  • Lxc/docker +ラッパーとどう違うのですか?
  • 1つのコンテナーに複数のプロセスを含めるためにdocker + supervisor/wrapperスクリプトで起動されるコンテナーに似ていますか?

言い換えると:

  • Lxcとdockerの一部のラッパーではできないlxdで何ができますか?
  • メインラインカーネル機能(名前空間とcgroup)を利用している場合、なぜubuntuでのみ利用できるのですか?
20
resultsway

LXDはLXCと連携して動作し、LXCを置き換えるまたは置き換えることを目的として設計されていません。代わりに、REST APIをサポートするバックエンドデーモンと、ローカルデーモンとリモートデーモンの両方で機能する単純なCLIクライアントを追加することにより、LXCベースのコンテナーを使いやすくすることを目的としていますREST API経由。

LXDはdocker Hostに似ています。

2
resultsway

Lxdは、単一のプロセスだけでなく、コンテナ内で完全なオペレーティングシステム機能をどのように提供しますか?

コンテナーは、完全な仮想マシンを起動する必要なしに、Linuxカーネルでcpu/memory/network/etcを制限するためのcgroups機能を使用する分離されたLinuxシステムです。

LXDはliblxc(LXCに基づく)によって提供される機能を使用し、これにより、OSの全機能の機能が提供されます。

Lxc/docker +ラッパーとどう違うのですか?

LXDはLXCのliblxcを使用します。 Dockerはよりアプリケーションに重点を置いており、コンテナー内のアプリの主要なプロセスのみです(今ではデフォルトでlibcontainerを使用していますが、Dockerは最初にliblxcを使用していました)。

1つのコンテナーに複数のプロセスを含めるためにdocker + supervisor/wrapperスクリプトで起動されるコンテナーに似ていますか?

似たような。 LXDとDockerの違いは、Dockerがアプリケーションコンテナーであり、LXDがシステムコンテナーであることです。 LXDはコンテナー内の主要プロセスのようにupstart/systemdを使用し、デフォルトでは完全なメモリに準備ができていますVM非常に軽いメモリ/ cpu使用の環境。 、しかしあなたはこのプロセスを手動で行う必要があります。どのように行われるかは http://phusion.github.io/baseimageで確認できます) -docker / コンテナ内で同様のことを行います。

Lxcとdockerの一部のラッパーではできないlxdで何ができますか?

コンテナーのライブマイグレーション、完全仮想マシンのようなコンテナーの使用、コンテナーで使用する専用のCPUコア/メモリ/ネットワークI/Oの正確な構成、非特権モードでのコンテナープロセスの実行(コンテナー内のルートプロセス!=ルートプロセスホスト)は、デフォルトではDockerが特権モードで動作しますが、現在Docker 1.10でのみ非特権モードが実装されていますが、多くのものが非特権モードで動作しないため、Dockerfileを確認(場合によっては書き換え)する必要があります。

LXDとDockerは異なります。 LXDはコンテナ内の「完全なOS」を提供し、VMで動作する任意のデプロイメントツールを使用してLXDでアプリケーションをデプロイできます。Dockerを使用すると、アプリケーションはコンテナ内にあり、別のものが必要ですアプリケーションをDockerにデプロイし、パフォーマンスの測定を行うためのツール。

メインラインカーネル機能(名前空間とcgroup)を利用している場合、なぜubuntuでのみ利用できるのですか?

LXDは、必要に応じてCanonicalの商用サポートがありますが、Centos 7、ArchLinux(カーネルにパッチを適用)でLXDを構築できます https://github.com/lxc/lxd をチェックします。 Gentooは現在LXDをサポートしています https://wiki.gentoo.org/wiki/LXD

13
Yonsy Solis

LXDliblxcに基づいています。その目的は、スナップショットやライブマイグレーションなどの機能を追加してlxcを制御することです。 LXDLXCにリンクされ、OS中心です。

Dockerは、最初はLXCに基づいた、はるかにアプリケーション中心ですが、現在はLXCから独立しているため、openvzなどを使用できます。 Dockerは、OSではなく、libと依存関係のあるアプリケーションにのみ焦点を当てています。

詳細はこちらをご覧ください: https://www.flockport.com/lxc-vs-lxd-vs-docker-making-sense-of-the-rapidly-evolving-container-ecosystem/

よろしく。

11
dominix