Docker安装redis,并解决启动warning

Docker大法好
redis启动后会报几个warning,网上一些解决办法无法解决docker环境下的warning,在此记录

按照网上的办法以下warning一直无法解决:

WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.
意思:TCP backlog区大不能设置为511,因为/proc/sys/net/core/somaxconn要求设为小于128的值
  1. 拉取镜像
    docker pull redis
  2. 目录准备
    mkdir -p /data/redis/data
  3. 修改系统参数

    临时修改
    `echo never > /sys/kernel/mm/transparent_hugepage/enabled`
    `echo never > /sys/kernel/mm/transparent_hugepage/defrag`
    永久
    `vi /etc/sysctl.conf`
    
    增加
    > vm.overcommit_memory = 1
    > net.core.somaxconn=4096
    
    执行
    `sysctl -p`
    `vi /etc/rc.d/rc.local`
    增加
    > if test -f /sys/kernel/mm/transparent_hugepage/enabled; then
    >  echo never > /sys/kernel/mm/transparent_hugepage/enabled
    > fi
    > if test -f /sys/kernel/mm/transparent_hugepage/defrag; then
    >  echo never > /sys/kernel/mm/transparent_hugepage/defrag
    > fi
    
    赋权
    `chmod +x /etc/rc.d/rc.local`
    
  4. 启动docker
    docker run --name redis -p 6379:6379 --sysctl net.core.somaxconn=4096 -v /data/redis/data:/data -d redis redis-server --requirepass "123456"
> 注意:
    加上--sysctl net.core.somaxconn=4096
    即可解决“TCP backlog区大不能设置为511”warning
DockerrediswarningThe TCP backlog setting of 511