web-dev-qa-db-ja.com

FreeBSD JailsまたはDockerインスタンス

FreeBSDのjailとLinuxのDockerの主な違いは何ですか? 1つは他よりもかなり安全または高性能ですか?刑務所はDockerインスタンスよりもはるかに古いため、コード自体はより安全であると考えることができます。しかし、Jailが「引っ掛かる」ことはないので、おそらくDockerインスタンスほど良くないのでしょうか。それとも、LinuxがFreeBSDよりもはるかに人気があるからというだけなのでしょうか。

17
Simba

FreeBSD jailとLinux Dockerのいくつかの側面、それらがどのように似ているか、どのように違うかについて説明します。

  • どちらも同じ目的を果たします。これは、軽量の仮想化の実装であり、アプリケーションを同じカーネルの下の分離されたコンパートメントで実行すると、類似点が終わり、違いが始まります。
  • Dockerは主に、さまざまなパブリックまたはプライベートリポジトリから取得できる準備済みのバイナリイメージを実行するために使用されるツールです。ほとんどの人はこの方法でそれを使用します。自分のリポジトリを作成して、それらのリポジトリにアップロードする人は少なくなります。
  • FreeBSDの刑務所は、LinuxのLXCに似ています。これは、コンテナーを最初から作成する方法です。あなたはそれを作成し、ソフトウェアをそれにインストールします、そしてそれはほとんどすべてです-それはFreeBSD内のFreeBSDとして扱うことができます。 Dockerのように、そのコンテナーを単一のソフトウェアとしてエクスポートする簡単な方法はありません。そのため、FreeBSDを使用するほとんどすべての人が、反対に、常にコンテナ内に独自のFreeBSDを最初から(つまり、インストールされているベースシステムから)ビルドし、FreeBSD Portsシステムまたはソースからソフトウェアをインストールしています。したがって、FreeBSDの刑務所は、あまりフレンドリーではなく、使用開始コストが高くなります。
  • lXCコンテナが永続的であるのと同じように、FreeBSD jailも永続的です。すべての変更は、ブーツ間でそのまま残ります。言ったように、それは同じOS内のOSの一部にすぎません(ただし、FreeBSDカーネルでABIが維持されるまで、ユーザーランドのソフトウェアバージョンは異なる場合があります)。これは、変更をcommitできないことを意味します。変更は、作成後にコミットされます。
  • 上記のすべてから、DockerのようにFreeBSDコンテナーが同様のオーケストレーションレイヤーを使用できない理由は明らかです。ポートの公開、ボリューム、リンク、または異なるjail間のメタ接続はありません。ネットワーク化されたOSが提供するインターフェースのみ:ネットワークソケット、UNIXソケット、共通のマウントポイント。
  • もちろん、Dockerにはないので、FreeBSD刑務所内で誰が誰と通信できるかについての制限はありません。
  • freeBSDではdockerが少なくとも部分的にサポートされているため、FreeBSDでネイティブのdockerイメージを実行できますが、Linuxは無料であるため、Linux互換性を介して実行されるため、これに対しては強くお勧めします(そして、FreeBSDは本当に大好きです)。いくつかの既知の制限を提供するレイヤー(FreeBSDカーネルモジュールで提供)。
26
drookie