下载官方镜像
- 寻找redis镜像
- 下载镜像
docker pull redis - 在服务器上创建redis目录
mkdir -p /work/redis/conf /work/redis/bin /work/redis/data /work/redis/logs - 将redis.conf配置文件放置在/work/redis/conf下
- 配置文件链接
redis.conf - 编写启动脚本:
#!/bin/bash
#Writerriter by ***
#Description use docker run start appserver
#2017.7.13
set -e
#############################################################################################################
docker run -d -p 6379:6379 --name redisserver --restart=always \
-v /work/redis/logs:/var/log/redis/ \
-v /work/redis/data:/data \
-v /etc/timezone:/etc/timezone \
-v /etc/localtime:/etc/localtime \
-v /work/redis/conf/redis.conf:/etc/redis/redis.conf \
-h redisserver redis:latest \
redis-server /etc/redis/redis.conf
- 用脚本启动
sh ./start.sh - 解决日志文件无权限写的问题
用脚本启动之后发现容器一直为restarting状态,发现报如下错误:
*** FATAL CONFIG FILE ERROR ***
Reading the configuration file, at line 163‘logfile “/var/log/redis/redis-server.log”’
Can’t open the log file: Permission denied
docker rm –f redisserver
docker run -it --name temp -v /work/redis/logs:/var/log/redis/ redis:lastest /bin/bash
--执行完上一句之后进入root用户
cd /var/log
chown -R root:root ./redis
cd /var/log/redis
echo '' > redis-server.log
chmod 777 ./redis-server.log
exit
docker ps –a
docker rm –f temp
cd /work/redis/bin
./start.sh #发现能成功启动
- 修改redis.conf中的参数使其单节点运行
cluster-enabled yes
如果配置yes则开启集群功能,此redis实例作为集群的一个节点,否则,它是一个普通的单一的redis实例。
将此参数改为no 重启就可以单节点运行了。