我运行容器命令:
docker run -d --name redis1 \
-p 127.0.0.1:6379:6379 \
-v /usr/local/redis/redis.conf:/etc/redis/redis.conf \
-v /usr/local/redis/data:/data \
-v /home/logs/redis.log:/etc/redis/redis.log \
--restart=always \
redis:6.2.14 \
redis-server /etc/redis/redis.conf
启动后通过docker ps 查看, 发现容器redis1一直在重启
于是我先使用:
docker run -d --name redis1 \
-p 127.0.0.1:6379:6379 \
-v /usr/local/redis/redis.conf:/etc/redis/redis.conf \
-v /usr/local/redis/data:/data \
-v /home/logs/redis.log:/etc/redis/redis.log \
--restart=always \
redis:6.2.14
然后
docker exec -it redis1 redis-server /etc/redis/redis.conf
就可以,求解
其实在重启的时候你应该看看日志,看看日志里面写了什么。
这两个启动的命令看上去都没有问题,唯一区别就是第二个启动命令没有指定配置文件。
所以实际上,当你执行第二个命令的时候,redis-server就已经运行起来了(使用默认配置)。
第三个命令,实际上是执行失败了,而且 100% 是因为端口冲突导致的失败 (这个时候redis-server 已经是在运行中了)。