码迷,mamicode.com
首页 > 其他好文 > 详细

Docker Centos安装Redis以及问题处理

时间:2015-07-27 18:17:30      阅读:296      评论:0      收藏:0      [点我收藏+]

标签:

  之前一篇文章 Redis安装及主从配置 介绍了redis的安装配置,另一篇文件介绍了 Docker Centos安装Openssh 。今天将两篇文件结合一下——在Docker Centos环境下搭建redis缓存数据库。

  Redis安装及主从配置 中执行到 “2.2.4启动 redis 服务” 即可认定为redis环境搭建完毕。但是要在docker容器中搭建这些东西就不这么容易了。比如你的容器中要存在make、g++、autoconfig等环境,但是仔细想想,这些编译需要的环境在真正运行的时候并没有什么O用。所以我们今天不用这种方式搭建。我们用的方式如下:

    1、在docker宿主机上,按照Docker Centos安装Openssh,搭建Docker centos ssh 环境

    2、在普通Linux服务器上,按照Redis安装及主从配置 执行到 “2.2.4启动 redis 服务”

    3、将上一步生成的文件夹 /usr/local/webserver/redis 拷贝到Docker centos ssh 环境中,并未可执行文件赋权限

    4、编写开机启动脚本

[root@redis /]# vi /run.sh 
#!/bin/bash
/usr/local/webserver/redis/start.sh
/usr/sbin/sshd -D


OK,就这么简单的完成了。

 

  另外想分享一个我遇到的问题,创建了redis容器之后,在宿主机上对容器进行重启的过程中,如果redis数据库在进行读写任务的话,重新启动的容器有可能无法启动redis服务。具体报错如下:

[root@redis redis]# /usr/local/webserver/redis/redis-server /usr/local/webserver/redis/conf/redis.conf
                _._                                                  
           _.-``__ ‘‘-._                                             
      _.-``    `.  `_.  ‘‘-._           Redis 2.6.16 (00000000/0) 64 bit
  .-`` .-```.  ```\/    _.,_ ‘‘-._                                   
 (          ,       .-`  | `,    )     Running in stand alone mode
 |`-._`-...-` __...-.``-._|` _.-|     Port: 6379
 |    `-._   `._    /     _.-    |     PID: 42
  `-._    `-._  `-./  _.-    _.-                                   
 |`-._`-._    `-.__.-    _.-_.-|                                  
 |    `-._`-._        _.-_.-    |           http://redis.io        
  `-._    `-._`-.__.-_.-    _.-                                   
 |`-._`-._    `-.__.-    _.-_.-|                                  
 |    `-._`-._        _.-_.-    |                                  
  `-._    `-._`-.__.-_.-    _.-                                   
      `-._    `-.__.-    _.-                                       
          `-._        _.-                                           
              `-.__.-                                               

[42] 27 Jul 07:03:30.511 # Server started, Redis version 2.6.16
[42] 27 Jul 07:03:30.511 # WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add vm.overcommit_memory = 1 to /etc/sysctl.conf and then reboot or run the command sysctl vm.overcommit_memory=1 for this to take effect.
[42] 27 Jul 07:03:30.511 # Wrong signature trying to load DB from file
[42] 27 Jul 07:03:30.511 # Fatal error loading the DB: Invalid argument. Exiting.

分析原因是redis在操作数据文件时被强制停止,导致数据文件不完整、格式正确。

  解决方法:

    删除/usr/local/webserver/redis/db/ 文件夹下的 *.rdb 文件,重启redis容器即可

Docker Centos安装Redis以及问题处理

标签:

原文地址:http://www.cnblogs.com/zhenyuyaodidiao/p/4680526.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!