Dockerコンテナはホストシステムのカーネルを共有しますが、独自のアプリケーションとライブラリが含まれています。 glibcはそのようなライブラリの1つです。そうですか?
それでは、実際のコンテナホストが実行されているカーネルのバージョンと互換性がないglibcの問題がないのはなぜですか?
答え1
アプリケーションを考慮すると、Linuxカーネルはかなりバイナリ互換です。非互換性を発見すると、次の理由で発生する可能性が高くなります。
ㅏ。 CPUアーキテクチャの不一致(カーネルバージョンとは関係のないようです)または
b.ライブラリの問題。アプリケーションは通常、いくつかのライブラリによって異なります。これらのいずれかが存在しないか互換性がない場合、アプリケーションが実行されない可能性があります。
もちろん、カーネルの一部のAPI / ABIはバージョン間で変更される可能性があるため、理論的にはカーネルの非互換性が発生する可能性があります。それは頻繁に起こるものではありません...
カーネルモジュールは別の話です。私が知っている限り、バージョン間の互換性レベルはやや低いです。しかし、glibcカーネルモジュールは必要ありません。