Ubuntu 14.04(Trusty)のバニラインストールをその中で実行して、元々古いカーネルに付属していた古いUbuntuバージョンをコンテナ化することは可能ですか?
たとえば、12.04の場合、linux-image
やlinux-image-generic-lts-saucy
などの後続のUbuntuリリース用のlinux-image-generic-lts-quantal
パッケージがあるため、答えは「はい」だと思います。ただし、10.04の場合はそうではないので、よくわかりません。しかし、実行してもよいものを推測するために使用できるドキュメントはありますか?
私が尋ねている理由は、カーネルインターフェースが時々更新されるからです。ただし、新しいバージョンのディストリビューションを実行すると同時に、以前のバージョンに基づいたビルド環境を維持することが有益な場合があります。
古いカーネルのプログラムを新しいカーネルで実行できます。 Linuxは、何らかの理由で古いバイナリを実行している人々のために、下位互換性を維持します(少なくともすべてのドキュメント化されたインターフェイスに対して)(これは、ソースを失ったため、再コンパイルを煩わせたくないためです)ソースのない商用ソフトウェアなど)。
古い開発ツールを使用したビルド環境、またはカーネルインターフェイスを深く掘り下げていないもののテスト環境が必要な場合は、古いカーネルを実行する必要はなく、古いユーザーランド環境だけを実行する必要があります。このため、複雑なものは必要ありません。 chroot で十分です。 LXC、Dockerなどのより高度なものは、古い(または新しい)ディストリビューションに独自のネットワーク構成を持たせたい場合に役立ちます。それを望まない場合は、Debianが既知の環境でソフトウェアをビルドするために正確に使用するものを使用できます(たとえば、テストインストールのあるマシンで安定したDebian用のソフトウェアをビルドします): schroot 。 chrootにDebianまたは派生物の代替インストールを設定するためのガイドについては、 64ビットのDebian/Ubuntuで32ビットのプログラムを実行するにはどうすればよいですか? を参照してください。
古いディストリビューションのカーネルを実行する場合は、KVMまたはVirtualBoxなどの実際の仮想マシンが必要です。LXCなどを使用したLinux-on-Linux仮想化は同じように実行されますカーネル全体。
➜ codetv_static# docker run ubuntu:10.04 /bin/echo 'Howdy!' Unable to find image 'ubuntu:10.04' locally 10.04: Pulling from library/ubuntu a3ed95caeb02: Pull complete 86b54f4b6a4e: Pull complete Digest: sha256:f6695b2d24dd2e1da0a79fa72459e33505da79939c13ce50e90675c32988ab64 Status: Downloaded newer image for ubuntu:10.04 Howdy!