关键词
[
"linux",
"docker",
"volume",
"redis",
"redis.conf"
]
我的配置
{
"redis版本":"6.5",
"":""
}
1.下载redis.conf
注意事项 : 注意redis版本号 ( 我redis是6.5.0 , 但是我下载6.2.6的redis.conf也可以 )
(个人还是建议下载版本比较低的redis.conf)
修改redis.conf
配置
#若不注释就只能本地连接 (默认不注释)
# bind 127.0.0.1 -::1
#后台运行
#默认"daemonize no",修改为"daemonize yes"
#在redis.conf中注掉daemonize yes这一行,或者改为daemonize no。
#因为我们的docker run里参数-d就是以守护进程方式启动redis,而配置文件里daemonize yes这个东东再次以守护进程方式启动,
#而且它会读取pidfile这个配置的文件作为进程ID文件。说白了,就是docker启动参数跟redis.conf配置冲突了。
daemonize no
#认证密码
#默认注释"# requirepass foobared",取消注释并修改密码"requirepass your_password"
requirepass your_password
2.创建数据卷(volume),并将redis.conf复制到此数据卷的文件夹下
#创建数据卷
docker volume create redis_conf
#检查redis_conf这个volume的基本信息
docker volume inspect redis_conf
[
{
"CreatedAt": "2022-01-18T15:07:08+08:00",
"Driver": "local",
"Labels": {},
"Mountpoint": "/var/lib/docker/volumes/redis_conf/_data",
"Name": "redis_conf",
"Options": {},
"Scope": "local"
}
]
#找到数据卷在服务器上的地址 - "/var/lib/docker/volumes/redis_conf/_data",
#并切换目录至该地址
cd /var/lib/docker/volumes/redis_conf/_data
#将第1步整理好的"redis.conf"上传到服务器的路径"/var/lib/docker/volumes/redis_conf/_data",
3.执行docker run...并配置
首先明确一点 , 只要没有"path/path/redis.conf"这个conf文件,"-v path/path/redis.conf:/etc/redis.conf",映射的只是路径!
#以前执行docker run , 都是以{images Name / image Id}结尾
#这次是在{images Name / image Id}后又加了其他执行参数 .
docker run --name redis_ -p 6379:6379 -itd -v redis_conf:/etc/redis redis redis-server /etc/redis/redis.conf