查看redis.conf配置信息
- daemonize no :redis默认是不作为守护进程使用的,这也就是说为什么在你不修改配置文件时直接使用redis-server /redis/redis.conf 启动redis会直接显示一个服务,你在这个终端就没有办法操作其他,只能新开一个终端来连接redis
- requirepass foobared :redis默认是没有密码连接的,但是为了安全密码还是需要设置的
- bind 127.0.0.1:这个配置项一般是直接注释掉的,这个配置开启后就只有本机可以连接redis
docker run命令的参数
docker run -d --restart="always" --name redis -v /usr/local/docker/data:/data -v /usr/local/docker/conf/:/usr/local/etc/redis/ --network redis-net -p 6380:6379 --ip 172.19.0.2 redis:6.0.8 redis-server /usr/local/etc/redis/redis.conf --appendonly yes
- i : 打开STDIN,用于控制台交互
- t :分配tty设备,该可以支持终端登录,默认为false
- d:指定容器运行于前台还是后台,默认为false
- v:给容器挂载存储卷,挂载到容器的某个目录
- –net:容器使用自己自定义的网络
- -p:是端口号
- –restart:指定容器停止后的重启策略 no:容器退出时不重启 on-failure:容器故障退出(返回值非零)时重启 always:容器退出时总是重启
问题点
当我们启动容器后,没有报错,查看日志也没有错误显示,结果容器没有运行。
回顾一下redis.conf里边是不是有一个daemonize no
这个参数是是否以守护进程执行的。
在回顾一下docker run命令里边有一个参数 -d
这个参数也是以守护进程执行。
这就清楚了,是redis.conf跟docker配置冲突了。
修改 redis.conf 配置文件把守护进程修改为no。
再次启动就可以了。