一、拉取镜像
docker pull redis:7.0.10
二、启动
2.1、修改配置文件
官网下载一个 redis.conf 文件,按如下修改:
1、允许 redis 远程连接,开启表示绑定本机IP,所以必须注释掉
2、开启 redis 验证,开启表示远程连接 redis 需要密码
3、daemonize no
daemonize yes 表示后台运行 redis,因为该配置和 docker run 中 -d 参数冲突,会导致容器一直启动失败,所以要设置为 no,默认也是 no
4、appendonly yes
开启 redis 持久化,默认 no,可打开
2.2、宿主机创建目录
mkdir -p /home/redis
- 放置配置文件
2.3、启动
docker run -d \
--name redis \
--restart=always \
-p 6379:6379 \
--privileged=true \
-v /home/redis/redis.conf:/etc/redis/redis.conf \
-v /home/redis/data:/data \
redis:7.0.10 redis-server /etc/redis/redis.conf
- -d:以守护进程模式在后台运行容器。
- --name redis:为容器指定名称为 redis,方便后续管理。
- --restart=always:它表示无论容器因为何种原因退出(包括正常退出和异常退出),Docker 守护进程都会自动重启该容器。比如当服务器重启、容器内部服务崩溃导致容器退出等情况发生时,容器都能自动重新启动,以提高容器内服务的可用性。
- -p [宿主机端口]:[容器端口]
- -p 6379:6379:将容器内暴露的 6379 端口,映射到主机的 6379 端口。
- --privileged=true:扩大容器的权限解决挂载目录没有权限的问题。
- -v /home/redis/redis.conf:/etc/redis/redis.conf:将宿主机 /home/redis/redis.conf 目录挂载到容器内的/etc/redis/redis.conf 目录。
- -v /home/redis/data:/data:将宿主机 /home/redis/data 目录挂载到容器内的 /data 目录,该目录是 redis 存储数据的位置,这样可以防止容器删除后数据丢失。
- redis-server /etc/redis/redis.conf:容器启动后执行的命令。以配置文件 redis.conf 启动 redis-server。
2.4、 测试
# 进入容器内部
docker exec -it redis bash
# 启动 redis 客户端,连接 127.0.0.1
redis-cli
# 登录
auth 123456
# 查询所有 key
keys *
# 设置键值
set key1 value1
2.5、 客户端连接
找个客户端比如 Redis Insight,连接一下 redis 的虚拟机,可以看到我们在容器内创建的 key1: