web-dev-qa-db-ja.com

DockerとOpenVZの違い

私は仮想化の世界の初心者です。 OpenVZとDockerの違いを説明できる人はいますか?

将来にとって何が良いでしょうか?

長所と短所?

47
forum.test17

コンテナの観点は2の間で大きく異なります。

要するにOpenVZはコンテナをVPSとみなし、Dockerはコンテナをアプリケーション/サービスとみなします。

これは何を意味しますか?OpenVZの場合、作成時に期待できますコンテナ。仮想サーバーを作成するようなものです。 OpenVZには、ユーザーが手動で装飾するVPSコンテナーのセットアップに焦点を合わせたインターフェースがあります。したがって、それらは、起動してシャットダウンできる空のLinuxマシン用のテンプレートを提供します。その後、SSHにログインして、必要なもの(LAMPスタックなど)を自分でセットアップします。

LAMPスタックをセットアップする場合は、新しいサーバーをセットアップするときに通常行うように行います。パブリックにアクセス可能なWAN IPがUbuntuである仮想イーサネットアダプターを備えた空のLinuxマシンを取得し、SSHでアクセスし、平均的なパッケージマネージャーを使用して必要なすべてのサービスをインストールします(yumまたはapt)および構成ファイルで必要なセットアップを自分で行います。

Dockerの場合、コンテナを作成するとき、コンテナは単一のアプリケーションであり、1つのことだけを行うと期待できます。したがって、それを支援するために他のコンテナが必要になる場合があります。 (たとえば、データベースを提供するコンテナ)Dockerを使用すると、実際にコンテナを起動することなくコンテナ内の内容を非常に簡単に定義し、このコンテナの新しい完全に等しいインスタンスを常に作成できます。 Dockerfilesと呼ばれる非常に軽量なテンプレートを使用して、Dockerコンテナ(画像)のコンテンツを定義します。

Dockerハブには巨大な一連のdockerfilesがすでにあります。Dockerハブで見つけて、自分で調べてみてください(キャンディーが無料のキャンディーショップにいるようなものです!:D): docker hub 。これらのdockerfilesによって生成されたイメージは、pullコマンドを使用して、docker CLIツールでプルできます。 Dockerでは、ポート転送、仮想ディレクトリ(ホストマシン上のファイルに簡単にアクセスできるようにする)など、あらゆる実行可能ファイルが使用できるものにも簡単にアクセスできます。

DockerでLAMPスタックが必要な場合は、「docker run -d -p 80:80 tutum/lamp」を実行するだけです。

これにより、イメージtutum/lampがプルされ、ホストのポート80に転送されるコンテナからポート80でデーモン化(-d)され、内部Webサービスが外部に公開されます。ご覧のとおり、OpenVZマシンとは異なり、独自のIPアドレスはありません。ルートマシン上で実行されているApacheサーバーとまったく同じです。ネイティブにインストールすることと比較した利点は、Dockerによりインストールがはるかに簡単になり、無制限に複製できることです。また、ホストマシンに大量のファイルが散らかることはなく、アプリケーションの周囲にセキュリティの境界を提供します。

ほとんどのdockerイメージには、それ固有の多くの機能があります。腫瘍/ランプの画像については、 こちらをご覧ください

70
RoyB