代码改变世界
[登录 · 注册]
  • docker安装redis
  • 1.获取镜像

    -- :4 指定redis Tag Name --
    ➜  docker pull redis:4
    

    2.构建运行目录

    ➜  redis ll
    drwxr-xr-x  3 pb  staff   102B  9 17 10:06 conf
    drwxr-xr-x@ 4 pb  staff   136B  9 17 10:38 data
    -rw-r--r--  1 pb  staff   160B  9 17 11:08 start.sh
    
    • conf redis配置目录,里面有一个redis.conf(官网cp)
    • data redis数据持久化目录
    • start.sh 启动脚本(如下)
    # start.sh
    #!/usr/bin/env bash
    docker run --rm  -p 6379:6379 --name myredis -v $PWD/conf:/conf -v $PWD/data:/data  -d  redis redis-server /conf/redis.conf --appendonly yes 
    • 参数:
    • --rm 在容器终止运行后自动删除容器文件
    • -d 后台运行
    • -p 6379:6379 端口映射(本机6379端口映射容器6379端口)
    • --name myredis 容器别名
    • -v /etc/app/redis/conf:/conf 目录映射(本机redis配置文件目录)
    • -v /etc/app/redis/data:/data 目录映射(本机redis数据目录)
    • redis-server /conf/redis.conf --appendonly yes 在容器运行命令,并打开数据持久化

     

     redis-cli 连接测试使用 redis 服务

        执行命令:docker exec -it myredis /bin/bash   进入docker终端,在终端中输入:redis-cli

    或者直接进入docker的redis-lci

        docker exec -it myredis redis-cli -h localhost -p 6379

    下载配置文件:

    创建配置文件目录存放redis.conf,文件从官网下载

    查看日志:

    dockers logs myredis/27ddba64faa6  (容器名称/id)

    docker基本命令:

    查看所有镜像 docker images

    删除镜像(会提示先停止使用中的容器) docker rmi  镜像name/镜像id

    查看所有容器 docker ps -a

    查看容器运行日志 docker logs 容器名称/容器id

    停止容器运行 docker stop 容器name/容器id

    终止容器后运行 docker start 容器name/容器id

    容器重启 docker restart 容器name/容器id

    删除容器 docker rm 容器name/容器id
    ————————————————

    安装过程中,如果发现容器启动失败,使用docker logs查看容器日志.

    参考:

    https://www.runoob.com/docker/docker-install-redis.html

    https://www.jianshu.com/p/b3b5f747c6ba

    redis配置文件修改(重要)

    /root/redis/redis01/conf/redis.conf 中daemonize=NO。非后台模式,如果为YES 会的导致 redis 无法启动,因为后台会导致docker无任务可做而退出。

    我们在docker 外面 用redis-cli测试会发现:

    [root@iZdfx6empaentgZ ~]# redis-cli
    127.0.0.1:6379> auth xx
    Error: Connection reset by peer

    原因:

    有时我们用Docker启动了一个http服务,从外部使用curl访问却返回Connection reset by peer错误。
    这种错误一般是因为服务容器内部并没有监听指定的端口,而docker run时却指定了该端口。

    进一步的,这种错误往往由于容器内部的服务监听在localhost:port上,只允许本机访问,这样的话容器的端口映射将失败。应该检查容器内部服务监听在0.0.0.0上。

     把redis的bind不要绑定127.0.0.1
  • 【推广】 阿里云小站-上云优惠聚集地(新老客户同享)更有每天限时秒杀!
    【推广】 云服务器低至0.95折 1核2G ECS云服务器8.1元/月
    【推广】 阿里云老用户升级四重礼遇享6.5折限时折扣!
  • 原文:https://www.cnblogs.com/youxin/p/12994087.html
走看看 - 开发者的网上家园