Docker Redis 大坑
1、正常下拉redis的docker镜像
- docker pull redis
2、关键在此处请注意
- 使用docker run 启动
- docker run -d
--name redis
-p 6379:6379
-e 'echo never>/sys/kernel/mm/transparent hugepage/enabled'
-v /redis/data:/data
-v /redis/conf/redis.conf:/usr/local/etc/redis/redis.conf
-v /redis/logs/redis.log:/logs/redis.log
--privileged=true
docker.io/redis
redis-server /usr/local/etc/redis/redis.conf
--requirepass "lidig"
解析:
-e 'echo never>/sys/kernel/mm/transparent hugepage/enabled’
这句指令加与不加对练习来说问题不大(反正我练习的时候懒得加),主要是针对警告:
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.
1:M 25 Feb 2019 00:42:54.108 * Ready to accept connections -----这是不加的情况,此处表示可以连接-v /redis/data:/data
挂载,该文件夹中主要是两部分文件:RDB快照与AOF
-v /redis/conf/redis.conf:/usr/local/etc/redis/redis.conf
挂载,将在容器外自定义redis配置文件,注意:一定要提早在容器外准备好conf文件,不然redis会读取不到配置文件而导致启动失败!
-v /redis/logs/redis.log:/logs/redis.log
挂载,将容器中日志文件同步在外部目录,注意:一定要提早在容器外准备log文件,否则报错,另外,一定要在准备好的conf配置文件中 logfile "/logs/redis.log" 该路径指定容器内路径
–privileged=true
特权启动,否则写入挂载目录中的文件会报无权限错误
重点:
redis-server /usr/local/etc/redis/redis.conf
使用redis的server命令启动并指定配置文件,这句***一定要加,一定要加,一定要加***
否则上述所指定的配置文件以及挂载等设置全部无效,因为一般操作下redis容器中很难找到配置文件(至少我找不到!)
–requirepass "lidig"
开启密码,配置与该命令保持一致,不然会有奇葩的问题出现!