今天安装配置了一下docker中的redis,记录一下。
其中网上搜到的文章基本都一致,找一个格式排版好看的参照下:https://www.cnblogs.com/zheaven/p/15458434.html
其中作者分为了本地连接和远程连接。
看区别是远程连接配置了挂载文件,心里存疑。。。
因为我用第一种本地方式直接启动redis容器,在其他内网服务器上也能访问,甚至都不需要禁用#bind 127.0.0.1也能访问,不知道它这个不支持远程访问是啥意思。。。。
当然最终还是按照挂载文件的方式配置的redis容器,因为要配置访问密码。。
不知道是他们文章的问题还是最新版redis镜像的问题(截止今天2022.02.23),配置文件里同一行后面的#注释是不被允许的,会被报错:
所以要么把后面的#注释去掉,要么写在命令行上面单独一行。
#我自己的redis.conf文件里只配置了以下三行,连#bind 127.0.0.1都没,内网之间能调通。 protected-mode no appendonly yes requirepass 你的密码
另外这篇文章的镜像生成容器命令也不完整,完整的语句如下:
docker run --name redis_ihr -p 7000:6379 --restart=always -e TZ="Asia/Shanghai" -v /你自己的文件目录/redis/data:/data -v /你自己的文件目录/redis/conf/redis.conf:/etc/redis/redis.conf -d redis
redis-server /etc/redis/redis.conf --appendonly yes
其中我重指向了自己的端口7000,并设为开机自启动,设置时区参数。
很奇怪的,没有找到redis容器里默认的配置文件,/etc下连redis文件夹都不存在,但不妨碍直接挂载redis.conf文件到该目录。
最后一句是调用自己配置的conf启动redis,但不知道为啥还要设为--appendonly yes,不是配置文件里设置了吗,只是看所有的文章都这么写,那我就这样执行了,倒是正常执行。
可以执行以下语句验证连接:
redis-cli -h 127.0.0.1 -p 6379 -a 123456 #password:远程redis服务密码(如无密码的话就不需要-a参数)
我发现用其他安装了redis的服务器连接竟然不需要输入密码。。。
就酱紫。。。。后面了解更多后再来记录吧。。
查询redis进程和文件路径:https://www.cnblogs.com/yangzailu/p/11044904.html,不过docker中执行者是redis,用 ls -l /proc/xxx/cwd查询竟然提示没权限。。。