之前一篇文章 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. (/) bit
.-`` .-```. ```\/ _.,_ ''-._
( ' , .-` | `, ) Running in stand alone mode
|`-._`-...-` __...-.``-._|'` _.-'| Port:
| `-._ `._ / _.-' | PID: 42
`-._ `-._ `-./ _.-' _.-'
|`-._`-._ `-.__.-' _.-'_.-'|
| `-._`-._ _.-'_.-' | http://redis.io
`-._ `-._`-.__.-'_.-' _.-'
|`-._`-._ `-.__.-' _.-'_.-'|
| `-._`-._ _.-'_.-' |
`-._ `-._`-.__.-'_.-' _.-'
`-._ `-.__.-' _.-'
`-._ _.-'
`-.__.-' [] Jul ::30.511 # Server started, Redis version 2.6.
[] Jul ::30.511 # WARNING overcommit_memory is set to ! 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.
[] Jul ::30.511 # Wrong signature trying to load DB from file
[] Jul ::30.511 # Fatal error loading the DB: Invalid argument. Exiting.

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

  解决方法:

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

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

  1. 在CentOS上通过Docker方式安装Redis

    在CentOS上通过Docker方式安装Redis 首先保证已经安装docker. 拖拽redis镜像 docker pull redis 启动redis docker run -p 6379:637 ...

  2. centos安装redis及php-redis扩展

    centos安装redis及php-redis扩展  Linux, WEB 七162012 今天公司同事要求在测试机上安装redis,并且要求让php安装上redis的扩展,redis是一个key-v ...

  3. Docker Centos安装Mysql5.6

    之前一篇随笔<Docker Centos安装Openssh> 写的是如何在基础的centos镜像中搭建ssh服务,在此基础上再搭建其他服务.本文继续介绍在centos_ssh基础上搭建my ...

  4. docker 中安装 redis

    使用以下命令在Docker Hub搜索Redis镜像docker search redis 使用以下命令拉取镜像,Redis的镜像docker pull redis:latest 使用以下命令查看,本 ...

  5. 转载:centos安装redis

    转载自:https://www.cnblogs.com/renzhicai/p/7773080.html CentOS下Redis的安装 [TOC] 前言 安装Redis需要知道自己需要哪个版本,有针 ...

  6. 虚拟机centos 安装 redis 环境 linux 使用 java 远程连接 redis

    redis官网地址:http://www.redis.io/ 最新版本:2.8.3 在Linux下安装Redis非常简单,具体步骤如下(官网有说明): 1.下载源码,解压缩后编译源码. $ wget ...

  7. Docker - CentOS 安装 Docker 和 Docker-Compose

    目录 介绍 Docker Docker-Conpose 安装 Docker CE 系统要求 使用 YUM 安装 配置加速器 安装 Docker-Compose 介绍 Docker Docker 是一个 ...

  8. linux环境部署,docker如何安装redis

    安装步骤 1. 安装Redis 通过docker search redis和docker pull redis下载redis镜像 2. 新建挂载配置文件夹 新建data和conf两个文件夹,位置随意. ...

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

    环境 { "服务器运营商":"腾讯云", "操作系统":"CentOS 7.5 64位", "CPU" ...

随机推荐

  1. ApplicationContext.xml文件详解

    想必用过Spring的程序员们都有这样的感觉,Spring把逻辑层封装的太完美了(个人感觉View层封装的不是很好).以至于有的初学者都不知道Spring配置文件的意思,就拿来用了.所以今天我给大家详 ...

  2. RFS_关键字

    1.  关键字的参数中能带变量 [示例]: [运行结果]: 2. 关键字的参数中不能带关键字 [示例]: [运行结果]: 其他: (1) 关键字可以理解为高级语言中的“函数”

  3. WPF程序只运行一个实例

    1.WPF程序在 启动窗口的构造函数执行InitializeComponent之前判断是否已经存在实例 不涉及服务器情况,可直接进行判断(不在mainwindow的构造函数中判断) // public ...

  4. [CC]CC插件初探

    应用程序插件框架的内容包括:主程序App,插件Plugin. 1.实现一个应用程序插架框架关键点有: 一个插件的标准接口,在主程序中存在一个插件的集合.主程序通过循环读取每个插件,将插件对象通过多态的 ...

  5. 又来了,SDE非直连

    现在sde都推荐直连了,没想到还是遇到了非直连. 用10.1默认是直连,但还支持非直连. 安装半天始终无法启动.系统差点崩了. 原来是sde用户密码过期锁定了,好烦. C:\Program Files ...

  6. Vue.2.0.5-表单控件绑定

    基础用法 你可以用 v-model 指令在表单控件元素上创建双向数据绑定.它会根据控件类型自动选取正确的方法来更新元素.尽管有些神奇,但 v-model 本质上不过是语法糖,它负责监听用户的输入事件以 ...

  7. Silverlight打印注意事项

    1.Silverlight的打印功能从版本5开始才支持矢量打印,这不但要求打印机支持矢量打印,而且还要安装相应的打印驱动程序. 测试你的打印机是否支持矢量打印,可以参考:如何用C#代码检测打印机和驱动 ...

  8. python中的yield

    在理解yield之前,要首先明白什么是generator,在理解generator之前首先要理解可迭代的概念. 可迭代(iterables)在你创建一个list的时候,可以逐个读取其中的元素,该逐个读 ...

  9. Nand Flash与Nor Flash的区别

    区别:http://zhidao.baidu.com/question/1068445.html?qbl=relate_question_0&word=Serial%20Flash%20%D3 ...

  10. Java基础之读文件——使用通道复制文件(FileBackup)

    控制台程序,除了使用Files类中使用copy()方法将文件复制外,还可以使用FileChannel对象复制文件,连接到输入文件的FileChannel对象能直接将数据传输到连接到输出文件的FileC ...