当前位置: 首页 > article >正文

docker 安装redis

docker 安装reids

  • 一. 默认配置文件部署
    • 极简部署
    • 3. redis持久化
  • 使用自己的配置文件部署
    • Dockerfile部署
    • docker 命令部署并设置配置文件
  • 解决方案
    • 问:find: '.': Permission denied
    • 解决方案一: 创建`volume`映射
    • 解决方案二:关闭SELINUX
    • 问:can't open config file 'redis.conf'
    • 解决方案
      • 1.查看容器中是否存在redis.conf
      • 查看映射目录是否有文件
      • 如果确定没有,则可通过以下命令导入:
  • 参考文献:[官方文档:docker中redis安装说明](https://hub.docker.com/_/redis)

好久不见!忙了好久,终于,偷得半日闲。
今天同事要打包容器去第三方k8s部署,而在安装redis时出现了问题,设置的密码未生效或者找不到配置文件等问题。就想着自己写一个docker安装redis的教程以作记录,直接上代码。

一. 默认配置文件部署

极简部署

docker run --name myredis -d redis

3. redis持久化

如果有写入操作,则60秒执行一次保存一次数据库快照。

docker run --name myredis -d redis redis-server --save 60 1 --loglevel warning

如需讲快照保存到本地,则docker命令为下面的命令:
如需自定义保存位置,可在 -v参数后修改保存位置

docker run -v  /docker/host/dir:/data --name myredis -d redis redis-server --save 60 1 --loglevel warning 
#或者映射当前目录至容器内,命令: 
docker run -v  $PWD:/data --name myredis -d redis redis-server --save 60 1 --loglevel warning 

使用自己的配置文件部署

Dockerfile部署

注意修改copy参数中本地文件路径

FROM redis
COPY redis.conf /usr/local/etc/redis/redis.conf
CMD [ "redis-server", "/usr/local/etc/redis/redis.conf" ]

docker 命令部署并设置配置文件

docker run -v /myredis/conf:/usr/local/etc/redis --name myredis redis redis-server /usr/local/etc/redis/redis.conf

解决方案

问:find: ‘.’: Permission denied

问题详情

[root@localhost data]# docker logs myredis 
find: '.': Permission denied
chown: changing ownership of '.': Permission denied

解决方案一: 创建volume映射

看下参数介绍:

[root@localhost data]# docker volume --help

Commands:
  create      Create a volume
  inspect     Display detailed information on one or more volumes
  ls          List volumes
  prune       Remove all unused volumes
  rm          Remove one or more volumes
  

创建及查看volume目录

[root@localhost data]# docker volume create redis_data  
redis_data
[root@localhost data]# docker volume inspect redis_data
[
    {
        "Driver": "local",
        "Labels": {},
        "Mountpoint": "/var/lib/docker/volumes/redis_data/_data",
        "Name": "redis_data",
        "Options": {},
        "Scope": "local"
    }
]

通过volume执行容器创建命令:

docker run -v redis_data:/data --name myredis -d redis 

Mountpoint 就是系统生成的目录。
可在创建容器后通过新增删除测试容器内外效果。

注意:使用 volume 是不能指定 volume 位置的。可以通过软连接把目录映射出来。有兴趣的可以测试一下。命令给你们:

ln -s 源目录 目的目录

解决方案二:关闭SELINUX

临时关闭

getenforce #查看SELinux状态 permissive关闭状态 enforcing开启状态
setenforce 0 #临时关闭 
setenforce 1 #临时开启 

永久关闭
编辑文件 /etc/selinux/config文件
修改 SELINUX=enforcingSELINUX=permissive

问:can’t open config file ‘redis.conf’

详情

 Fatal error, can't open config file '/usr/local/etc/redis/redis.conf': No such file or directory

解决方案

1.查看容器中是否存在redis.conf

进入容器查看配置文件是否存在

查看映射目录是否有文件

自己去目录下看有没有

如果确定没有,则可通过以下命令导入:

docker cp ./redis.conf myredis:/usr/local/etc/redis/redis.conf 

参考文献:官方文档:docker中redis安装说明


http://www.kler.cn/a/9334.html

相关文章:

  • UDP协议和TCP协议之间有什么具体区别?
  • 如何在算家云搭建Peach-9B-8k-Roleplay(文本生成)
  • 【Pikachu】目录遍历实战
  • 论文阅读《BEVFormer v2》
  • DNS面临的4大类共计11小类安全风险及防御措施
  • 【Vue】Vue3.0(十九)Vue 3.0 中一种组件间通信方式-自定义事件
  • 文档流normal flow
  • Redis - 基础数据类型
  • 签约喜讯 | Smartbi携手金域医学共建统一数据运营平台
  • Dart语言操作符?和!的用法
  • 优思学院|《精益思想》读后感
  • Fork分支代码与主干保持同步
  • ( “树” 之 DFS) 104. 二叉树的最大深度 ——【Leetcode每日一题】
  • 详细介绍别人电脑访问到自己电脑运行的项目
  • linux及docker和postgres SQL常用的一些命令整理
  • 托福高频真词List12 // 附托福TPO阅读真题
  • 【C++】继承---上(继承的引入及使用详解、切片赋值和作用域)
  • Elasticsearch+head+Ik中文分词器的安装以及Go操作Elasticsearch
  • 如何选择适合的企业网站建站方案?
  • 【Linux】基础IO
  • 【微信小程序】-- 自定义组件 - 父子组件之间的通信(三十八)
  • Flutter 生命周期原理
  • Properties
  • ios swift tableView根据数据显示隐藏cell
  • 单机最快的队列Disruptor解析和使用
  • 【Spring】1—Spring简介