目录
docker pull redis #后面可以带上tag号, 默认拉取最新版本
docker pull redis:7.0.3
二、查看镜像
docker images
三、创建文件目录
/opt/docker/redis7/data
/opt/docker/redis7/conf
/opt/docker/redis7/log
拷贝redis.conf文件到redis7/conf目录下
wget http://download.redis.io/redis-stable/redis.conf
四、修改redis.conf的配置 根据个人需要修改
#任何ip可以访问#注释掉这部分,这是限制redis只能本地访问
bind 0.0.0.0
#守护进程 默认no,改为yes意为以守护进程方式启动,可后台运行,除非kill进程,改为yes会使配置文件方式# # 启动redis失败
daemonize no
#密码
requirepass gs!@#123
appendonly yes #redis持久化(可选)
#持久化⽂件存储路径
dir ./
protected-mode no #默认yes,开启保护模式,限制为本地访问
#持久化策略, 10秒内有个1个key改动,执⾏快照
save 10 1
dir /opt/docker/redis7/data
#⽇志⽂件
logfile "/opt/docker/redis7/log/redis.log"
#持久化⽂件名称(可选)
dbfilename redis7.rdb
五、docker启动redis命令
说redis的容器中默认是没有配置文件的,我直接用的是第二种方式
参考博文
【Docker】解决创建Redis容器没有conf配置文件_咔咔-的博客-CSDN博客_docker redis 配置文件
第一种命令网上通用方法: (我执行没有启动成功)
docker run -itd -p 6379:6379 --name redis7 -v /opt/docker/redis7/conf/redis.conf:/etc/redis/redis.conf -v /opt/docker/redis7/data:/data -d redis:7.0.3 redis-server /etc/redis/redis.conf --appendonly yes
第二种直接挂载
docker run -p 6379:6379 --name redis7 -v /opt/docker/redis7/conf/redis.conf:/etc/redis/redis.conf -v /opt/docker/redis7/data:/data -d redis:7.0.3 --appendonly yes --requirepass "123456"
说明:
-m 2048M --memory-swap -1 可选,限制redis的内存,因为服务器上还部署了其他资源,交换空间不做限制
-p 6379:6379 端口映射:前表示主机部分,:后表示容器部分。
--name redis7 指定该容器名称,查看和进行操作都比较方便。
-v 挂载目录,规则与端口映射相同。
为什么需要挂载目录:个人认为docker是个沙箱隔离级别的容器,这个是它的特点及安全机制,不能随便访问外部(主机)资源目录,所以需要这个挂载目录机制。
-d redis 表示后台启动redis
redis-server /etc/redis/redis.conf 以配置文件启动redis,加载容器内的conf文件,最终找到的是挂载的目录/opt/docker/redis7/conf/redis.conf
docker exec -it redis7 /bin/bash 查看cd /etc/redis/redis.conf配置文件
docker stats 查看容器的运行状况,占用内存、CPU、IO吞吐
六、解决动态分配空间内核不支持的问题
docker警告:Your kernel does not support cgroup swap limit capabilities_江前云后的博客-CSDN博客