Will Nilges Asked: 2020-06-23 05:07:44 +0800 CST2020-06-23 05:07:44 +0800 CST 2020-06-23 05:07:44 +0800 CST Portainer:将 vm.max_map_count 传递给 SonarQube Docker 容器 772 我需要在我的 Portainer 实例上设置一个 SonarQube 容器。SonarQube 使用 Elasticsearch,它需要从主机传递的内核设置。正如这个问题中提到的,这个问题有据可查 ,但不幸的是,发布者没有详细说明他们的解决方案。 显然,这个问题可以通过在你的主机上运行来解决(?) sysctl -w vm.max_map_count=262144 但是,如果有办法只为这个容器指定它,我会喜欢它。这样的事情是否可能,在 Portainer 中是如何完成的?我尝试了一个环境变量,但它没有效果。 linux docker elasticsearch sysctl 1 个回答 Voted Best Answer Henrik Pingel 2020-06-23T05:44:00+08:002020-06-23T05:44:00+08:00 容器共享机器的操作系统系统内核,因此无法像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 也是有意义的。
容器共享机器的操作系统系统内核,因此无法像
vm.max_map_count
容器本身那样更改内核参数。您链接的问题包含一个示例命令
启动容器时如何执行此操作。但是我不建议这样做,因为该
privileged
模式不安全。我建议
vm.max_map_count
在主机上设置并使用集群管理器将容器固定到该 Docker 主机。恕我直言,在专用容器中运行 elasticsearch 和 sonarqube 也是有意义的。