1. docker拉取镜像
docker pull redis
2 建立配置目录和准备配置文件
mkdir -p /usr/local/docker-redis && cd /usr/local/docker-redis
wget http://download.redis.io/redis-stable/redis.conf
修改默认配置文件
- bind 127.0.0.1 #注释掉这部分,这是限制redis只能本地访问
- protected-mode no #默认yes,开启保护模式,限制为本地访问
- daemonize no#默认no,改为yes意为以守护进程方式启动,可后台运行,除非kill进程(可选),改为yes会使配置文件方式启动redis失败
- dir ./ #输入本地redis数据库存放文件夹(可选)
- appendonly yes #redis持久化(可选)
3 运行
docker run -p 16379:6379 --name redis -v /usr/local/docker-redis/redis.conf:/etc/redis/redis.conf -v /usr/local/docker-redis/data:/data -d redis redis-server /etc/redis/redis.conf --appendonly yes
[root@localhost docker-redis]# docker run -p 16379:6379 --name redis -v /usr/local/docker-redis/redis.conf:/etc/redis/redis.conf -v /usr/local/docker-redis/data:/data -d redis redis-server /etc/redis/redis.conf --appendonly yes 641d4f77db7a9d49899c838ff8fb845a6ce8454b5dc2bde5de8f508636d9bfaf
命令解释说明:
- -p 6379:6379 端口映射:前表示主机部分,:后表示容器部分。
- --name myredis 指定该容器名称,查看和进行操作都比较方便。
- -v 挂载目录,规则与端口映射相同。
- -d redis 表示后台启动redis
- redis-server /etc/redis/redis.conf 以配置文件启动redis,加载容器内的conf文件,最终找到的是挂载的目录/usr/local/docker/redis.conf
- appendonly yes 开启redis 持久化
4 使用docker ps 查看redis已经运行了
5 使用 docker exec -it redis /bin/bash进入redis
[root@localhost docker-redis]# docker exec -it redis /bin/bash
6 使用 redis-cli 可以测试
root@641d4f77db7a:/data# redis-cli 127.0.0.1:6379> keys * (empty array) 127.0.0.1:6379> set name test OK 127.0.0.1:6379> get name "test" 127.0.0.1:6379>
7 设置密码
vim /usr/local/docker-redis
#搜索
requirepass 123456
docker restart redis
8 备注
docker 里 启动redis之后就立马挂掉 检查配置文件是否设置了daemonize yes,如果是,就要改为daemonize no,因为该选项让redis成为在后台运行的守护进程,而docker容器必须要有一个前台进程才能留存