カーネルモジュールxfsprogs
をインストールしようとしました。コンテナー内に正常にインストールされました。それは本当に驚くべきことですが、lsmod
はこのモジュールをコンテナ内またはホストシステムにリストしません。コンテナに新しいカーネルモジュールをロードするにはどうすればよいですか?(CentOS
コンテナ、Ubuntu
ホスト)
コンテナーは、システムコールを通じてカーネルと対話し、コンテナー内のカーネルまたはカーネルモジュールのどの部分も含みません。これが、軽量で持ち運びできるように設計されたコンテナの理由の1つです。また、xfsprogsはユーザー空間プログラムであり、カーネルモジュールではありません。
新しいカーネルモジュールをコンテナーにロードするにはどうすればよいですか(CentOSコンテナー、Ubuntuホスト)
モジュールは、Dockerコンテナーからではなく、ホストOSにロードする必要があります。
docker run --name container_name --privileged --cap-add=ALL -d -v /dev:/dev -v /lib/modules:/lib/modules image_id
ここでは、すべてのLinux機能が追加されているため、機能を調整できます。
Falco は、開始プロセスの一部としてカーネルモジュールをロードするコンテナーの例です。
docker run -i -t --name falco --privileged \
-v /var/run/docker.sock:/Host/var/run/docker.sock \
-v /dev:/Host/dev \
-v /proc:/Host/proc:ro \
-v /boot:/Host/boot:ro \
-v /lib/modules:/Host/lib/modules:ro \
-v /usr:/Host/usr:ro \
sysdig/falco