docker pull redis
从官网获取 redis.conf 配置文件 ,保存至:/data/redis/redis.conf
mkdir -p /data/redis/conf
wget http://download.redis.io/redis-stable/redis.conf -O /data/redis/conf/redis.conf
修改默认配置文件
bind 127.0.0.1
protected-mode yes
# requirepass foobared
appendonly no//持久化
修改为
#bind 127.0.0.1
protected-mode no
requirepass yourpassword
appendonly yes//持久化 #可选,如果仅作为缓存服务器使用
protected-mode 是在没有显示定义 bind 地址(即监听全网断),又没有设置密码 requirepass时,只允许本地回环 127.0.0.1 访问。
也就是说当开启了 protected-mode 时,如果你既没有显示的定义了 bind监听的地址,同时又没有设置 auth 密码。那你只能通过 127.0.0.1 来访问 redis 服务
启动容器
docker run -p 6379:6379 --name redis --restart=always -v /data/redis/conf/redis.conf:/etc/redis/redis.conf -v /data/redis/data:/data -d redis redis-server /etc/redis/redis.conf --appendonly yes
-p 6379:6379 端口映射:前表示主机部分,:后表示容器部分。
--name redis 指定该容器名称,查看和进行操作都比较方便。
-v 挂载目录,规则与端口映射相同。
-d redis 表示后台启动redis
redis-server /etc/redis/redis.conf 以配置文件启动redis,加载容器内的conf文件,最终找到的是挂载的目录/data/redis/conf/redis.conf
appendonly yes 开启redis 持久化
测试
docker exec -it myredis /bin/bash
redis-cli -a yourpassword
set test 123
get test