前提:已使用docker pull redis拉取了镜像
1 目录挂载与操作
说明:使用 -v 参数将redis容器内部相关目录 挂载到 主机 对应的目录下面,如下冒号后面的目录是redis容器内部目录,冒号前面是主机目录
-v /mydata/redis/data:/data
在主机中创建对应的目录
ubuntu@ip-172-31-38-30:/$ sudo mkdir -p /mydata/redis/conf
ubuntu@ip-172-31-38-30:/$ sudo touch /mydata/redis/conf/redis.conf
ubuntu@ip-172-31-38-30:/$ sudo mkdir -p /mydata/redis/data
2 进入redis镜像创建容器
root@ip-172-31-38-30:/# docker run -p 6379:6379 --name redis -v /mydata/redis/data:/data -v /mydata/redis/conf/redis.conf:/etc/redis/redis.conf -d redis redis-server /etc/redis/redis.conf
4e504b7c35867bb95ef95ab0592a5a78975a99282edf338636104b1535f63a9c
注:可以使用以下命令查看正在运行的容器:
root@ip-172-31-38-30:/# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
4e504b7c3586 redis "docker-entrypoint.s…" 10 minutes ago Up 10 minutes 0.0.0.0:6379->6379/tcp redis
bea6cc5d6f62 mysql:5.7 "docker-entrypoint.s…" 21 hours ago Up 2 hours 0.0.0.0:3306->3306/tcp, 33060/tcp mysql57
3 进入redis容器进行操作:
root@ip-172-31-38-30:/# docker exec -it redis redis-cli
127.0.0.1:6379> set a b
OK
127.0.0.1:6379> get a
"b"
127.0.0.1:6379>
或者先进入bash, 在使用redis-cli连接redis数据库:
root@ip-172-31-38-30:/# docker exec -it redis /bin/bash
root@4e504b7c3586:/data# redis-cli
127.0.0.1:6379> get a
(nil)
4 持久化
redis数据存储在内存中,退出后则数据丢失,所以需要设置配置文件将其持久化
在主机中或redis容器内部找到对应的redis配置文件:
root@ip-172-31-38-30:/mydata/redis/conf# ls
redis.conf
root@ip-172-31-38-30:/mydata/redis/conf# vim redis.conf
在该文件中加入以下命令:
appendonly yes
重启redis容器
docker restart redis
经过数据持久化之后的操作演示