DOCKER 容器和主机上的运行时内核参数不一致
Posted
技术标签:
【中文标题】DOCKER 容器和主机上的运行时内核参数不一致【英文标题】:Inconsistent runtime kernel parameters in DOCKER container and on host 【发布时间】:2015-06-05 08:21:08 【问题描述】:我的主机在 Ubuntu 14.04.2 LTS 上,我正在使用最新的 centos 基础映像来创建 IBM InfoSphere BigInsights 的 DOCKER 映像,以便将其推送到 Bluemix Container Cloud。
我几乎解决了所有问题,但我坚持使用 sysctl 设置运行时内核参数,因为它们的值错误并且安装程序会抱怨。
sysctl -a |grep net.ipv4.ip_local_port_range
net.ipv4.ip_local_port_range = 32768 61000
当然不能将它们设置在 DOCKER 容器中,我收到以下错误:
sysctl -w net.ipv4.ip_local_port_range="1024 64000"
sysctl: setting key "net.ipv4.ip_local_port_range": Read-only file system
所以我已经在主机系统上设置了参数:
sudo sysctl -w net.ipv4.ip_local_port_range="1024 64000"
net.ipv4.ip_local_port_range = 1024 64000
sudo sysctl -a |grep net.ipv4.ip_local_port_range
net.ipv4.ip_local_port_range = 1024 64000
我什至重建了整个图像并重新创建了容器,但仍然在我得到的 DOCKER 容器内:
sysctl -a |grep net.ipv4.ip_local_port_range
net.ipv4.ip_local_port_range = 32768 61000
有什么想法吗?
【问题讨论】:
[刷新 docker 容器的 net.core.somaxcomm(或任何 sysctl 属性)][1] [1]:***.com/questions/26177059/… 非常好,不幸的是我的主机系统上没有/proc/net.ipv4,但我明白你的意思,会考虑一下 但是一旦我通过 DOCKER 恕我直言设置主机的内核参数,在主机系统本身上设置它们就没有区别:( 【参考方案1】:您需要重新加载 sysctl。尝试以下命令之一(它们取决于您的操作系统)
sudo /etc/rc.d/sysctl reload
或
sudo sysctl -p /etc/sysctl.conf
【讨论】:
您好,我已经在主机系统上设置了参数并从头开始构建映像,但在运行的 docker 容器中仍然有错误的参数 我更新了上面的答案,应该重新加载 sysctl。 你能粘贴运行其中一个/两个命令的错误吗? 你还有这个问题吗?以上是关于DOCKER 容器和主机上的运行时内核参数不一致的主要内容,如果未能解决你的问题,请参考以下文章