dockerはホストのsysctl値を使用しません。

dockerはホストのsysctl値を使用しません。

私はoraclelinux 9 LinuxホストでLinuxコンテナを実行しています(ホスト自体は仮想マシンで実行されています)。
dockerはどこからsysctlパラメータを読みますか?

dockerが使用するデフォルトのsysctl値を変更してみました。

これを行うために、ホストシステムで次の手順を実行しました。

  • sysctl -w net.ip4.udp_rmem_min=64000000
  • sysctl -a | grep ip4.udp_rmem_min-> 64000000
  • systemctl restart docker(ただ保存しよう)
  • docker run --rm -it oraclelinux:9

コンテナに

  • sysctl -a | grep ip4.udp_rmem_min-> 4096

なぜ64000000の代わりに4096ですか?

cat /proc/sys/net/ipv4/udp_rmem_minホストから64000000を返します。

また、パラメータを含むファイルをコピーしてコンピュータを/etc/sysctl.d/再起動しましたが、結果は同じでした。

興味深いことに、Ubuntu 22システム(ベアメタル)で同じことを行うとうまくいきます。

もしそうなら、dockerはoraclelinux 9 / rhelのsysctl値をどこで読み込みますか?
ちょうどホストのものを使用していると思いましたが、それとも何か他の問題があるのでしょうか?

--sysctlwith を使用できることはわかっていますが、docker rundockerを間接的に使用しているため、そのように使用することはできません。kindこれは定義された可能性を提供しないようです。--sysctl

ベストアンサー1

おすすめ記事