一. 基本安装步骤
1.查询redis镜像
docker search redis
2.拉取对应版本镜像,这里拉去最新版
docker pull redis
- 创建redis本地目录/usr/local/redis(我这是这个,你可以自己找位置)
- 在/usr/local/redis下创建data目录
- 找一个redis.conf文件(从官网找或者别的地方),放到/usr/local/redis目录下
- 更改redis.conf基本配置:
bind 127.0.0.1 #bind改为redis 所在容器的ip,这是docker自动分配的,需要运行起来后才知道,所以等运行起来看一下,然后修改,然后restart容器吧。这个ip是自动分配的,会变。
daemonize no#默认no,改为yes意为以守护进程方式启动,可后台运行,除非kill进程,改为yes会使配置文件方式启动redis失败
- 运行镜像
#挂载的文件和目录,自己可以定,我这里定的是这个
docker run -p 6379:6379 --name myredis -v /usr/local/redis/redis.conf:/usr/local/etc/redis/redis.conf -v /usr/local/redis/data:/data -d redis redis-server /usr/local/etc/redis/redis.conf --appendonly yes
- 查看redis启动 log(myredis 是我启动的redis容器的名称)
docker logs myredis
- 登录redis-cli
#两种方式,因为我们改了ip,所以登录时都要指明host
#一种是在宿主机上通过docker登录
docker exec -it myredis redis-cli -h 172.17.0.5
#另一种是已经进入redis容器,然后直接运行redis-cli,
docker exec -it myredis bash //进入redis容器
redis-cli -h 172.17.0.5 //指定host登录redis-cli
二. 小问题解决
- redis容器无法被 其他容器访问(例如容器A)
- redis.conf文件里 有一个bind参数,默认是bind 127.0.0.0。bind参数意思是限制只能通过本机客户端访问(不是网上说的限制只能那个ip访问,这里bind的只能是本机ip,其他没用),懂了bind的意义后,我们就好办了。
- 因为现在是redis容器,所以他的本机地址不再是127.0.0.0,所以你启动redis后,通过docker inspect redis,发现报127.0.0.0链接错误。我这里通过 docker ispect redis 发现 redis启动后,给自动分配的ip地址是 172.17.0.5(我这里是这个),所以redis.conf文件里,把bind参数改为bind这个即可。
网友评论