docker安装redis
2020-05-30 18:09 youxin 阅读(1138) 评论(0) 编辑 收藏 举报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上。
########################### PATH=/usr/local/bin:/sbin:/usr/bin:/bin REDISPORT=6379 EXEC=/opt/redis/bin/redis-server REDIS_CLI=/opt/redis/bin/redis-cli PIDFILE="/var/run/redis_6379.pid" CONF="/opt/redis/redis.conf" case "$1" in start) if [ -f $PIDFILE ] then echo "$PIDFILE exists, process is already running or crashed" else echo "Starting Redis server..." $EXEC $CONF fi if [ "$?"="0" ] then echo "Redis is running..." fi ;; stop) if [ ! -f $PIDFILE ] then echo "$PIDFILE does not exist, process is not running" else PID=$(cat $PIDFILE) echo "Stopping ..." $REDIS_CLI -p $REDISPORT SHUTDOWN while [ -x ${PIDFILE} ] do echo "Waiting for Redis to shutdown ..." sleep 1 done echo "Redis stopped" fi ;; restart|force-reload) ${0} stop ${0} start ;; *) echo "Usage: /etc/init.d/redis {start|stop|restart|force-reload}" >&2 exit 1 esac ##############################
docker-compose安装
redis: image: redis:7.2.4-alpine3.19 hostname: redis container_name: 'redis' environment: - TZ=Asia/Shanghai # 设置时区 ports: - "6379:6379" volumes: - ./data:/data - ./logs:/logs - ./conf/redis.conf:/usr/local/etc/redis/redis.conf command: redis-server /usr/local/etc/redis/redis.conf
./
/conf/redis.conf这个文件,去github看redis仓库地址,下载对应的redis.conf即可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
2013-05-30 转:数据库模式
2012-05-30 paypal创始人----艾伦·马斯克
2012-05-30 转:汇编寄存器的使用