美文网首页
Docker安装redis

Docker安装redis

作者: yunqing_71 | 来源:发表于2020-01-06 15:52 被阅读0次

    参考文章:
    https://www.jianshu.com/p/e64d01f0dd60
    https://www.cnblogs.com/liyiran/p/11522114.html

    • 拉取redis镜像
    docker pull redis
    
    • 从官网获取 redis.conf 配置文件,放到挂载目录/usr/local/docker/redis/redis.conf并修改以下前2项。
    • 注意下面3项:
    bind 127.0.0.1 #注释掉这部分,因为不注释掉的话限制redis只能本地访问
    protected-mode no #改成no, 默认yes开启保护模式,限制为只能本地访问,所以改成no
    daemonize no #不修改,就用默认no值,如果改为yes意为以守护进程方式启动,可后台运行,除非kill进程(可选),改为yes会使配置文件方式启动redis失败,所以不修改
    
    • docker启动redis
    docker run -p 6379: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
    
    #大佬给的方法,不用配置redis.config
    docker run -d --privileged=true --restart=always -p 6379:6379 -v /usr/local/docker/redis/data:/data --name redis redis:latest redis-server --appendonly yes
    
    • 解释:

    -p 6379:6379 映射本地6379端口 :容器6379端口
    --name redis 给容器命名redis
    -v /usr/local/docker/redis/redis.conf:/etc/redis/redis.conf 挂载目录,冒号前是本地linux目录,冒号后是容器内目录
    -d redis 表示后台启动redis
    redis-server /etc/redis/redis.conf 以配置文件启动redis,加载容器内的conf文件,最终找到的是挂载的目录/usr/local/docker/redis/redis.conf
    --appendonly yes 开启redis 持久化

    • 查看容器运行状况
    docker ps -a
    
    image.png
    • 使用 docker exec -it redis /bin/bash进入redis
    • 使用 redis-cli 可以测试连接


      image.png

    记录遇到的错误

    #docker ps
    查看容器状态的时候redis的状态一直是restarting一直重启
    #查看redis的日志
    docker logs redis
    #发现这么一行Bad file format reading the append only file: make a backup of your AOF file, then use ./redis-check-aof --fix <filename>,理解的意思是aof文件损坏,想了一下原因,昨晚更新windows了...八成这个原因
    #解决办法:直接删除容器,删除镜像,重新下载镜像重启
    docker stop redis
    docker rm redis
    docker rmi redis:latest
    docker pull redis
    docker run -d --privileged=true --restart=always -p 6379:6379 -v d:\docker\redis\data:/data --name redis redis:latest redis-server --appendonly yes
    #注意要删除d:/docker/redis/data目录下的aof文件,估计只删除这个文件重新run容器就行,但是没再尝试
    
    #创建容器的时候报错WARNING: IPv4 forwarding is disabled. Networking will not work.
    #这个错导致连接不上redis,但是在容器内部docker exec -it redis bash     redis-cli能够使用
    #我启动redis容器的命令
    docker run -d --privileged=true --restart=always -p 6379:6379 -v /usr/docker/redis/data:/data --name redis redis:latest redis-server --appendonly yes
    #解决办法
    vim  /usr/lib/sysctl.d/00-system.conf
    #添加下面这行
    net.ipv4.ip_forward=1
    #重启network
    systemctl restart network
    #删除错误的重启重新执行启动redis的命令
    docker stop redis
    docker rm redis
    

    相关文章

      网友评论

          本文标题:Docker安装redis

          本文链接:https://www.haomeiwen.com/subject/svvhactx.html