मैं लोड बैलेंसर के लिए कर्नेल सेटिंग्स को ट्यून करने के लिए एक कंटेनर बना रहा हूं । मैं एक विशेषाधिकार प्राप्त कंटेनर का उपयोग करके एक छवि में मेजबान में उन परिवर्तनों को तैनात करना पसंद करूंगा । उदाहरण के लिए:
docker run --rm --privileged ubuntu:latest sysctl -w net.core.somaxconn=65535
परीक्षण में परिवर्तन प्रभावी होते हैं लेकिन केवल उस कंटेनर के लिए । मैं इस धारणा के तहत था कि पूरी तरह से विशेषाधिकार प्राप्त कंटेनर में परिवर्तन /खरीद वास्तव में अंतर्निहित ओएस को बदल देगा ।
$docker run --rm --privileged ubuntu:latest \ sysctl -w net.core.somaxconn=65535net.core.somaxconn = 65535$ docker run --rm --privileged ubuntu:latest \ /bin/bash -c "sysctl -a | grep somaxconn"net.core.somaxconn = 128
क्या यह विशेषाधिकार प्राप्त कंटेनरों को कैसे काम करना चाहिए?
क्या मैं सिर्फ कुछ मूर्खतापूर्ण कर रहा हूँ?
स्थायी परिवर्तन करने का सबसे अच्छा तरीका क्या है?
संस्करण जानकारी:
Client version: 1.4.1Client API version: 1.16Go version (client): go1.3.3Git commit (client): 5bc2ff8OS/Arch (client): linux/amd64Server version: 1.4.1Server API version: 1.16Go version (server): go1.3.3Git commit (server): 5bc2ff8
घुड़सवार /खरीद के साथ उदाहरण कमांड:
$ docker run -v /proc:/proc ubuntu:latest \ /bin/bash -c "sysctl -a | grep local_port"net.ipv4.ip_local_port_range = 32768 61000$ docker run -v /proc:/proc --privileged ubuntu:latest \ /bin/bash -c "sysctl -p /updates/sysctl.conf"net.ipv4.ip_local_port_range = 2000 65000$ docker run -v /proc:/proc ubuntu:latest \ /bin/bash -c "sysctl -a | grep local_port"net.ipv4.ip_local_port_range = 32768 61000$ docker run -v /proc:/proc --privileged ubuntu:latest \ /bin/bash -c "sysctl -a | grep local_port"net.ipv4.ip_local_port_range = 32768 61000