如何在docker的ubuntu中获取/proc/sys/net的完整选项

如何在docker的ubuntu中获取/proc/sys/net的完整选项

我正在尝试在容器中的 /proc/sys/net/core 处重新配置一些网络内核设置。但似乎 docker ubuntu:14.04 中缺少一些选项,因此我无法配置它们。例如:

$ sysctl -w net.core.rmem_max=262144
sysctl: cannot stat /proc/sys/net/core/rmem_max: No such file or directory

我的 docker 中只有几个选项:

在我的主机的 Ubuntu 中:

$ ls /proc/sys/net/core/
bpf_jit_enable         message_burst           rmem_default           xfrm_acq_expires
busy_poll              message_cost            rmem_max               xfrm_aevent_etime
busy_read              netdev_budget           rps_sock_flow_entries  xfrm_aevent_rseqth
default_qdisc          netdev_max_backlog      somaxconn              xfrm_larval_drop
dev_weight             netdev_rss_key          warnings
flow_limit_cpu_bitmap  netdev_tstamp_prequeue  wmem_default
flow_limit_table_len   optmem_max              wmem_max

在我的docker的Ubuntu中:

$ ls /proc/sys/net/core/
somaxconn  xfrm_acq_expires  xfrm_aevent_etime  xfrm_aevent_rseqth  xfrm_larval_drop

我尝试使用--net=无/默认(我不想使用主机)或–v /proc/sys/net:/proc/sys/net但什么都没有改变。

我在 kernel.org 上读到了这段内容:“/proc/sys/net...您可能只会看到其中的一些,这取决于您的内核的配置。”

那么有没有什么办法可以获得完整的选择?

谢谢!

答案1

这些文件代表主机网络堆栈的配置,无需--net=host在容器内创建新的网络堆栈,文件就会被容器文件“覆盖”。

如果您需要访问主机堆栈,您可以考虑将其安装在其他地方,比如说/net using -v /proc/sys/net/:/net,然后简单地使用echo value > /net/my/file而不是使用 sysctl。

相关内容