Docker Centos安装Redis以及问题处理

  之前一篇文章 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、编写开机启动脚本

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

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

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

[[email protected] 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容器即可

时间: 2024-08-24 12:34:22

Docker Centos安装Redis以及问题处理的相关文章

CentOS 安装redis 2.8.7

波折了好几下才装上 1.下载 wget http://download.redis.io/releases/redis-2.8.7.tar.gz 下载后的文件在当前目录里 redis-2.8.7.tar.gz 2.编译安装 tar xf redis-2.8.7.tar.gz cd redis-2.8.7 make make install 如果没有安装gcc的话会提示gcc not found 于是就需要安装一下gcc: yum -y install gcc 因为刚开始把yum的源换成163的了

centOS 安装Redis并开启对应的端口服务

1,安装CentOS 7,安装时记住勾选web服务器或者其他功能较全的工具,否则连最基本的ifconfig都用不了 2,新装的看看/etc/sysconfig/ 下有没有iptables,看看service iptables start 能不能正常启动,如果不能启动则用root用户,yum -install iptables 进行防火墙安装 3,安装好后,要让外面访问进来有两种方式:1,关闭防火墙 chkconfig iptables off(重启后生效) 2,开放端口访问权限 vi /etc/

centos安装redis及php-redis扩展

centos安装redis及php-redis扩展 Linux, WEB 七162012 今天公司同事要求在测试机上安装redis,并且要求让php安装上redis的扩展,redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合)和zset(有序集 合).这些数据类型都支持push/pop.add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的.在此基础上,redi

Docker Centos安装Mysql5.6

之前一篇随笔<Docker Centos安装Openssh> 写的是如何在基础的centos镜像中搭建ssh服务,在此基础上再搭建其他服务.本文继续介绍在centos_ssh基础上搭建mysql服务. 1.启动centos_sshd镜像 # docker run --net=host -d registry:5000/centos-sshd-222:v1.0 /run.sh 这里用的是host模式连接的网络,启动之后即可通过ssh登录到容器内部,装上mysql之后可以直接重启容器来验证是否成功

linux 下centos 安装redis

linux 下centos 安装 redis centos 版本: redis 版本:redis-4.0.11.tar.gz 在线安装:wget 命令. centos 如缺少命令.使用 yum install wget 安装目录:/usr/local/redis 下 cd /usr/local/ 获取redis包 wget http://download.redis.io/releases/redis-4.0.11.tar.gz 解压  至redis 目录 tar xzf redis-4.0.1

[Linux.centOS].安装Redis 腾讯云

环境 { "服务器运营商":"腾讯云", "操作系统":"CentOS 7.5 64位", "CPU":"1核", "内存":"2GB", "公网带宽":"1Mbps" } 需要掌握的技能点 { "Linux技能": { "vim命令":"打开文本,编辑文本,

centos 安装 redis 及 phpredis

1.安装tcl支持 yum install tcl 2.安装redis我们以最新的2.8.9为例 $ wget http://download.redis.io/releases/redis-2.8.9.tar.gz $ tar xzf redis-2.8.9.tar.gz $ cd redis-2.8.9 $ make $ make test $ make install 测试通过后安装,安装后会自动把redis-server,redis-cli,redis-benchmark,redis-c

Centos 安装Redis

1.安装tcl支持 yum install tcl 2.安装redis我们以最新的2.8.9为例 $ wget http://download.redis.io/releases/redis-2.8.9.tar.gz $ tar xzf redis-2.8.9.tar.gz $ cd redis-2.8.9 $ make $ make test $ make install 测试通过后安装,安装后会自动把redis-server,redis-cli,redis-benchmark,redis-c

Docker基本操作 安装redis 与 redis 主从配置

今天李经理让我了解一下docker 以前从来没有接触过docker 百度了一下.貌似是挺出名的,挺方便的一个东西. 刚开始对docker没有什么概念.连这个是什么东西都不知道.网上说的是容器.对于什么都不懂的人来说.这个讲的还是有些宽泛了.不能形成一个理解. 于是到网易云课堂学习了一下docker.但是网易云课堂上面课程不多,只有一个免费的,上面讲的比较宽泛.但是呢 对于docker是什么东西终于有了一些了解. 一.什么是docker 有什么用     1.1:对于docker 看了这么多.他的