Debian/Centos 上の Freebsd Jails の代替

Debian/Centos 上の Freebsd Jails の代替

最終的には FreeBSD/Freenas から Debian/Freenas Scale に移行する予定ですが、質問はより広範囲にわたります。Linux OS 上の jail に相当するものは何でしょうか。

今では、ほとんどの人が docker またはその派生版を推奨しています。私も同感ですが、jail の動作、つまりシェルにアクセスして必要なものを変更/インストールできる方法が本当に気に入っています。問題は (私の知る限り)、docker を jail のように扱うことはできないため、事前に構成して構築する必要があることです。私には向いていません。

次のオプションは VM ですが、これは機能すると思いますが、すべてのアプリに VM を作成するのは複雑すぎるように感じますし、リソースが無駄になりませんか?

そこで、現在の jail を何に置き換えれば、現在の機能と同等以上の性能を維持できるかについての推奨事項を探しています。

答え1

設計上の理由で特定のオペレーティング システムを使用する必要がある場合は、そのオペレーティング システムにツールを移植する必要があります。

当社では製品の推奨は行いませんので、コンテナ管理ツールを探すか作成する必要があります。jail は、実装の詳細において Linux コンテナとは明らかに異なります。ただし、コンテナ技術を比較すると、大まかには似ていることがわかります。


FreeBSD 刑務所他のリソースの分離により chroot が強化されています。さらに、ライフサイクルの管理、メディアからのインストール、開始、停止を行うツールもあります。

Linuxの同様の分離メカニズムは名前空間ネットワーク、ユーザー、マウント、IPC、uname。これらに基づいて構築されたほとんどのコンテナ ツール (選択肢は複数あります) は、すべてがどのように動作するかについて独自のアイデアを課します。Docker は chroot だけではありません。Docker によるイメージやネットワークの処理方法が気に入らないかもしれません。

ただし、コンテナーと考え​​られるものがなくても Linux 名前空間を使用することは可能です。名前空間に関するWikipediaのページchroot にプロセス分離を追加するという興味深いアイデアがあります。

SHELL=/bin/sh unshare --fork --pid chroot "${chrootdir}" "$@"

この chroot を作成し、そこに何かをインストールする手順は含まれていません。

答え2

jail で気に入っている機能のうち、コンテナーでは使えない機能について、もっと詳しく説明するといいでしょう。私は個人的に LXC コンテナーを実行していますが、それらには個性があります (Debian または Debian ホスト上の Ubuntu)。それらでは SSH を実行でき、ネットワーク名前空間のおかげで、ホスト IP スタックから分離された独自の IP スタックがあり、プロセス名前空間のおかげで、ホスト アプリケーションとやり取りすることなく、独自のアプリケーション セットをインストールして実行できます。

関連情報