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
原文地址:https://www.cnblogs.com/youxin/p/12994087.html