docker安装redis
首先考虑需要安装的redis版本,我这里是安装的redis 6.0.16,如果宿主机没有,那么就docker pull redis:6.0.16
[root@localhost Docker_redis]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
redis 6.0.16 34ed1a7402ac 3 weeks ago 112MB
一、指定redis配置文件
我的宿主机(虚拟机)之前没有安装redis,但宿主机需要一个redis配置文件,我自己本地电脑安装的是redis 6.0.3,那么我直接把本地的配置文件拷贝到了虚拟机指定目录。
首先在宿主机本地根目录创建redis容器卷目录,然后把本地redis配置文件拷贝到宿主机目录下,拷贝redis.conf文件拷贝,提供给docker容器用。
[root@localhost Docker_redis]# mkdir Docker_redis
[root@localhost Docker_redis]# cd Docker_redis
[root@localhost Docker_redis]# pwd
/Docker_redis
[root@localhost Docker_redis]# ls
redis.conf
然后修改redis.conf文件
编辑redis.conf文件找到以下配置
requirepass 123456 //是否需要开启redis验证,这里设置密码123456 #bind 127.0.0.1 //把这行注释掉,允许redis外地连接,必须 daemonize no //将daemonize yes这行注释或者将yes改为no,因为该配置和docker run 中的-d参数冲突,会导致容器一直启动失败 appendonly yes //redis持久化可开可不开 protected-mode yes //如果还是不放心,外界可以连接redis也可以把保护模式关闭,改为no
二、运行
[root@localhost Docker_redis]# docker run -p 6379:6379 --name my_redis6016 --privileged=true -v /Docker_redis/redis.conf:/etc/redis/redis.conf -v /Docker_redis/data:/data -d redis:6.0.16 redis-server /etc/redis/redis.conf 6030771456a6c577635260fcad1a8d13994d189921bb04e60033a644773a2a37
[root@localhost Docker_redis]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 6030771456a6 redis:6.0.16 "docker-entrypoint.s…" 3 seconds ago Up 2 seconds 0.0.0.0:6379->6379/tcp, :::6379->6379/tcp my_redis6016
[root@localhost Docker_redis]# docker exec -it my_redis6016 /bin/bash root@6030771456a6:/data# redis-cli 127.0.0.1:6379> keys * (error) NOAUTH Authentication required. 127.0.0.1:6379> auth 123456 OK 127.0.0.1:6379>
想要验证宿主机redis配置文件是否能有效控制容器redis配置,那么可以试着修改宿主机的配置文件,然后重启容器
[root@localhost Docker_redis]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 6030771456a6 redis:6.0.16 "docker-entrypoint.s…" 5 minutes ago Up 5 minutes 0.0.0.0:6379->6379/tcp, :::6379->6379/tcp my_redis6016 [root@localhost Docker_redis]# docker restart my_redis6016 //重启 my_redis6016