docker 安装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

补充知识

如果你只是想单纯的部署一个redis,开启持久化,并且设置密码,以下的命令完全能满足你:

docker run -d --name myredis  -p 6378:6379 redis  --appendonly yes  --requirepass password

解决方案

问: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安装说明

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

冰夏之夜影

赠人玫瑰,手留余香

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值