使用Docker时,在Redis启动时解决警告的正确方法是什么?

当我运行Redis Docker镜像时,我遇到了以下警告:

# Warning: no config file specified, using the default config. In order to specify a config file use redis-server /path/to/redis.conf ( ... ) # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128. ( ... ) # WARNING you have Transparent Huge Pages (THP) support enabled in your kernel. This will create latency and memory usage issues with Redis. To fix this issue run the command 'echo never > /sys/kernel/mm/transparent_hugepage/enabled' as root, and add it to your /etc/rc.local in order to retain the setting after a reboot. Redis must be restarted after THP is disabled. 

我在互联网上find的解决scheme中, 这个看起来覆盖了一切,但是当我在Docker范围内尝试它(例如:更改我的Dockerfile来应用它们)时,出现错误“只读文件系统”。 手动例子给我相同的问题:

 [root@769368ed0fc5 /]# sysctl -w net.core.somaxconn=65535 sysctl: setting key "net.core.somaxconn": Read-only file system [root@769368ed0fc5 /]# echo 'vm.overcommit_memory = 1' >> /etc/sysctl.conf [root@769368ed0fc5 /]# sysctl vm.overcommit_memory=1 sysctl: setting key "vm.overcommit_memory": Read-only file system [root@769368ed0fc5 /]# echo never > /sys/kernel/mm/transparent_hugepage/enabled bash: /sys/kernel/mm/transparent_hugepage/enabled: Read-only file system [root@769368ed0fc5 /]# echo never > /sys/kernel/mm/transparent_hugepage/enabled bash: /sys/kernel/mm/transparent_hugepage/enabled: Read-only file system 

有谁知道如何以适当的方式解决它? 我发现了很多技巧来解决它,如:

  • 在特权模式下运行容器
  • 在容器中挂载主机/ proc
  • 使用主机networking堆栈(–net = host)
    • 看起来这是不可避免的,因为Redis不支持NAT环境 ,但无论如何它并不能解决所有问题。

我想知道在Docker中处理它的正确方法是什么。 提供解决scheme的解决scheme将被赞赏。