redis
安装
docker安装 - 非集群
sudo docker run -d --name redis -p 6379:6379 -e 'echo never>/sys/kernel/mm/transparent hugepage/enabled' -v $PWD/redis/data:/data -v $PWD/redis/conf/redis.conf:/usr/local/etc/redis/redis.conf -v $PWD/redis/logs/redis.log:/logs/redis.log --privileged=true redis redis-server /usr/local/etc/redis/redis.conf --appendonly yes --requirepass "123456"
参数详解
-p 6379:6379
将容器的6379端口映射到主机的6379端口
-d
将容器的在后台运行
–restart=always
随docker启动而启动
-e 'echo never>/sys/kernel/mm/transparent hugepage/enabled’
这句指令加与不加对练习来说问题不大(反正我练习的时候懒得加),主要是针对警告:这是不加的情况,此处表示可以连接
-v $PWD/redis/data:/data
挂载,该文件夹中主要是两部分文件:RDB快照与AOF
-v $PWD/redis/conf/redis.conf:/usr/local/etc/redis/redis.conf
挂载,将在容器外自定义redis配置文件,注意:一定要提早在容器外准备好conf文件,不然redis会读取不到配置文件而导致启动失败!
-v $PWD/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 "123456"
开启密码,配置与该命令保持一致,不然会有奇葩的问题出现!
–appendonly yes
容器内的root拥有真正root权限,否则容器内root只是外部普通用户权限