1.获取最新redis镜像
docker pull redis
如需获取指定版本号的镜像:
docker pull redis:4.0.9
2.创建 data 、conf、以及redis.conf配置文件。
否则无法通过redis deskTop manager访问
mkdir -p /root/redis/data //-p 表示递归创建 如果没有就创建
mkdir -p /root/redis/conf
从网上找一份原始redis.conf文件,并将其拷贝到/root/redis/conf/目录下,并修改其内容,需要修改的节点如下:
#将下面这行注释掉,允许远程连接
#bind 127.0.0.1
##默认yes,开启保护模式,限制为本地访问,此处需设为no
protected-mode no
#数据持久化(可选)
appendonly yes
#默认no,改为yes意为以守护进程方式启动,可后台运行,除非kill进程,改为yes会使配置文件方式启动redis失败
daemonize no
#设置密码
requirepass 123456
3、创建容器
docker run --name myredis -v /root/redis/data:/data -v /root/redis/conf/redis.conf:/etc/redis/redis.conf -p 6379:6379 -d redis redis-server /etc/redis/redis.conf
命令解释说明:
--name myredis 指定redis容器名称,查看和操作起来比较方便。
-v 挂载目录,将宿主机的redis data目录和配置文件挂载到容器内。
-p 6379:6379 端口映射:前者表示主机端口,供外界访问:后者表示redis容器端口。
-d redis 表示后台启动redis
redis-server /etc/redis/redis.conf 以配置文件启动redis,加载容器内的conf文件,最终找到宿主机文件 /root/redis/conf/redis.conf,方便修改。
注意:docker里边的redis.conf 中daemonize参数如果配置为YES 会导致 redis 无法启动,因为后台认为docker无任务可做而退出。
4. 容器内部连接进行测试
执行docker exec -it myredis redis-cli 命令,如果不是使用默认6379端口号,需添加参数 -p 以指定端口号进入终端。通过auth password进行登陆。
[root@*** conf]# docker exec -it myredis redis-cli
127.0.0.1:6379> set fruit apple
(error) NOAUTH Authentication required.
127.0.0.1:6379> auth 123456
OK
127.0.0.1:6379> set fruit apple
OK
127.0.0.1:6379> get fruit
"apple"
5. 容器外部连接测试
这里我使用Redis Desktop Manager进行连接,配置连接参数 IP地址为服务器的真实IP地址:
补充:存储汉字
使用get,set进行存取测试,如果这里存储的是汉字,在获取的时候可能获取到的16位的字符串,这里只需要连接的时候添加 --raw即可,完整语句如下:
127.0.0.1:6379> set chname 庭威
OK
127.0.0.1:6379> get chname
"\xe5\xba\xad\xe5\xa8\x81"
127.0.0.1:6379> exit
[root@iZZ ~]# docker exec -it myredis redis-cli -p 6379 --raw
127.0.0.1:13679> auth 123456
OK
127.0.0.1:6379> get chname
庭威