docker - 如何在Docker容器上应用内核调整

标签 docker linux-kernel

我在CentOS 7.2操作系统的顶部使用docker引擎v1.12构建了3个不同的应用程序容器,即Nginx,mysql和mongo。我想根据应用程序及其各自的容器应用不同的内核设置。

例如,我想在Mongo和mysql容器上将vm.zone_reclaim_mode设置为0,而要在nginx容器上将vm.zone_reclaim_mode设置为1。我尝试使用docker --privileged命令初始化镜像,并修改了内核设置,但更改了主机操作系统的设置,并将其应用于所有容器。

我已经阅读了许多文档,并了解容器与主机内核一起运行。

我想知道有什么方法可以保留特定于容器的内核设置吗?

最佳答案

很快-不,如果您要同时运行容器,则不能这样做。
为什么?这是What is Docker?第一页的引文

Lightweight

Containers running on a single machine share the same operating system kernel; they start instantly and use less RAM. Images are constructed from layered filesystems and share common files, making disk usage and image downloads much more efficient.


Docker完全不同于具有自己内核的VM。
docker实际上是由主机系统内核驱动的,因此一次运行的所有容器都共享相同的内核配置

关于docker - 如何在Docker容器上应用内核调整,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40191574/

相关文章:

c - 如何在 linux 中使用 ioctl 获取网关 ip 和名称服务器 ip

c - 使用 i2c 总线访问驱动程序时出现未知核心转储

diff - 您可以离线生成补丁并将其应用于 docker 容器吗?

docker - 从Azure Pipeline Task构建Docker镜像

linux-kernel - Linux 内核驱动模块 : Handle multiple device files using a single driver

linux - sysenter_entry() : "movl (%ebp), %ebp" What is the meaning

docker - 如何在远程计算机上运行rabbitmqctl命令?

docker - nginx反向代理简单配置不重定向

node.js - Docker DNS getaddrinfo ENOTFOUND

linux - linux内核中usb鼠标使用了哪些驱动?