美文网首页
docker 使用 redis

docker 使用 redis

作者: 程序员小白成长记 | 来源:发表于2021-09-04 11:12 被阅读0次

一、docker 安装操作 redis 步骤

1,查看镜像仓库是否存在redis镜像

docker search redis

2,拉取redis镜像

docker pull redis

3,启动redis

默认情况下,Docker将在前台运行命令。要在后台运行,需要指定选项-d

docker run --name myredis -d -p 6739:6739 redis

4,redis 交互

docker exec -it myredis bash
cd /usr/local/bin
./redis-cli

or

docker exec -it myredis redis-cli
image.png image.png

到此为止,外界还无法访问


【注】以下坑较多,慢慢来

  • 坑1:挂载宿主机路径没有权限
docker run -d -p 6380:6380 --name myredis1 -v /usr/local/dev/docker-redis6380/redis.conf:/usr/local/etc/redis/redis.conf  redis redis-server /usr/local/etc/redis/redis.conf

其中 -v /usr/local/dev/docker-redis6380/redis.conf:/usr/local/etc/redis/redis.conf
为:-v [宿主机路径]:[容器内路径]

【问题描述】

查看宿主机发现没有/usr/local/dev/docker-redis6380目录,手动创建目录发现没有权限,所以应该是因为没有权限导致创建失败

【解决办法】

解决办法有两种:
1,切换到root用户执行
2,修改宿主机路径为当前用户下有权限的路径

为了安全考虑采用第2种方案:
其种宿主机的 /Users/sg99065ml/docker-redis6379/ 是一个当前用户有权限的目录

docker run -d -p 6379:6379 --name myredis2 -v /Users/docker-redis6379/redis.conf:/usr/local/etc/redis/redis.conf  redis redis-server /usr/local/etc/redis/redis.conf/redis.conf

  • 坑2:redis容器内没有redis.conf文件,需要手动下载

【问题描述】

发现还是没有宿主机的挂在路径的redis.conf只是一个文件夹,文件夹下什么也没有,经搜索发现会存在docker安装redis时容器内没有reids.conf的情况,可参考【3】

【解决办法】

官网下载对应版本的redis.conf文件
官网下载地址:https://redis.io/topics/config

在宿主机对应的目录下创建redis.conf文件,把官网配置拷贝到文件中

  • 坑3:无法容器外访问

【问题描述】

通过lsof -i: 6379查看,发现服务已经起来,端口已经监听,但是却无法在容器外进行访问

【解决办法】

redis.conf 文件中的 bind 127.0.0.1 修改为 bind 0.0.0.0,这样容器外就可以访问了

需要删除之前的容器,然后重新启动,启动命令

docker run -d -p 6379:6379 --name myredis2 -v /Users/docker-redis6379/redis.conf:/usr/local/etc/redis/redis.conf  redis redis-server /usr/local/etc/redis/redis.conf/redis.conf

二、注意

  • 【注1】在宿主机中操作文件也会影响到容器内,共用映射目录
  • 【注2】redis 的容器内部没有 vi vim cat这些命令,所以映射是很有必要的
  • 【注3】redis.conf 文件中的 daemonize yes 与 启动命令参数的 -d 效果一致,如果都采用,则容器启动不起来
  • 【注4】redis.conf 文件中的 bind 127.0.0.1 修改为 bind 0.0.0.0,这样容器外就可以访问了

三、参考

【1】docker部署redis实战:https://zhuanlan.zhihu.com/p/70110697
【2】Docker安装部署redis
【3】【Docker】解决创建Redis容器没有conf配置文件:https://blog.csdn.net/fangkang7/article/details/100642695
【4】Homebrew安装Redis找不到redis.conf文件
【5】Redis启动和停止(Ubuntu):https://blog.csdn.net/panlee1991/article/details/82931582
【6】Docker(十七)-修改Docker容器启动配置参数
【7】使用docker启动redis容器失败的原因:https://blog.csdn.net/woshihedayu/article/details/116855772

相关文章

网友评论

      本文标题:docker 使用 redis

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