Portainer:将 vm.max_map_count 传递给 SonarQube Docker 容器

Portainer:将 vm.max_map_count 传递给 SonarQube Docker 容器

我需要在我的 Portainer 实例上设置 SonarQube 容器。SonarQube 使用 Elasticsearch,它需要从主机传递内核设置。此问题是出色地 记录,正如这个问题,但遗憾的是海报没有详细说明他们的解决方案。

显然,可以通过在主机上运行此程序来解决此问题(?)

sysctl -w vm.max_map_count=262144

但是,如果有一种方法可以只为这个容器指定这一点,我会很高兴。这样的事情可能吗?在 Portainer 中如何做到这一点?我尝试了一个环境变量,但没有效果。

答案1

容器共享机器的操作系统内核,因此无法像vm.max_map_count在容器本身中那样更改内核参数。

问题您链接的包含示例命令

docker run -it --rm --privileged --net=host --pid=host -v /:/host debian:sid chroot /host sysctl -w vm.max_map_count=262145

启动容器时如何执行此操作。但是我不建议这样做,因为这种privileged模式不安全。

我建议vm.max_map_count在主机上进行设置,并使用集群管理器将容器固定到该 Docker 主机。恕我直言,在专用容器中运行 elasticsearch 和 sonarqube 也是有意义的。

相关内容