docker 下搭建redis怕时间久了忘记了 记录下
1.安装环境
这是是在Centos7进行安装
CentOS 7安装docker要求系统为64位、系统内核版本为 3.10 以上,可以使用以下命令查看
uname -r
2.yun安装docker
2.1 查看是否已安装docker列表
yum list installed | grep docker
我这里是安装后写文章 所以这里有
2.2 安装docker
yum -y install docker -y表示不询问安装,直到安装成功,安装完后再次查看安装列表
2.3 启动docker
chkconfig docker on # 加入开机启动
systemctl start docker # 启动docker
2.4 查看docker服务状态
systemctl status docker
以上说明docker安装成功
3.开始在 安装redis
3.1搜索镜像
docker search redis
拉取官方的镜像:会自动拉取stars标星最多的镜像 docker pull redis
这里也可以选择版本我这里是用的4.0
docker pull redis:4.0 #根据自己需求选择不通版本
3.2 查看对应的镜像
docker images
3.3 使用docker安装redis,挂载外部配置 数据 日志(这个是重点)
3.3.1.配置需要挂载的地址
/home/dockerredis/conf/redis.conf ##配置文件地战
/home/dockerredis/data ##数据存放位置
/home/dockerredis/log/redis.log ##数据存放位置(这里日志的配置后面会讲)
3.3.2容器启动
docker run --name mydockerredis -p 9380:6379 -v /home/dockerredis/conf/redis.conf:/etc/redis/redis.conf -v /home/dockerredis/data:/data -v /home/dockerredis/log/redis.log:/opt/redis.log -d redis:4.0 redis-server /etc/redis/redis.conf
命令解析:
--name mydockerredis : 指定容器名称
-p 9380:6379 : 指定端口映射,默认redis启动的是6379,至于外部端口不冲突就行。
--v /home/dockerredis/conf/redis.conf:/etc/redis/redis.conf : 将主机中当前目录下的redis.conf配置文件映
-v /home/dockerredis/data:/data: 将主机中当前目录下的data挂载到容器的/data
-v /home/dockerredis/log/redis.log:/opt/redis.log 将主机中当前目录下的log挂载到容器的/log
重点来 重点来了(我这里卡了很久)
日志的外挂相对于 配置和数据要麻烦点
1. 新建一个/home/dockerredis/log/redis.log的文件
sudo touch /home/dockerredis/log/redis.log
2.修改日志文件redis.log的权限
chmod 777 /home/dockerredis/log/redis.log
3.修改/home/dockerredis/conf/redis.conf
logfile /opt/redis.log ##添加这一句
然后启动
docker run --name mydockerredis -p 9380:6379 -v /home/dockerredis/conf/redis.conf:/etc/redis/redis.conf -v /home/dockerredis/data:/data -v /home/dockerredis/log/redis.log:/opt/redis.log -d redis:4.0 redis-server /etc/redis/redis.conf
这里数据的持久化以及其他配置我都是放配置文件里面的
这里就算配置完成了 如果启动出现下面的提示
The TCP backlog setting of 511 cannot be enforced because
/proc/sys/net/core/somaxconn is set to the lower value of 128
直接修改宿主机的somaxconn参数,并设置 sysctl.conf 的 somaxconn全部不行。
又尝试在宿主机中修改somaxconn参数依然不行 最后我尝试在创建容器的时候修改somaxconn参数,还是不行
解决方案
–sysctl net.core.somaxconn=1024 ##启动容器加入这句
如下
docker run --name mydockerredis --sysctl net.core.somaxconn=1024 -p 9380:6379 -v /home/dockerredis/conf/redis.conf:/etc/redis/redis.conf -v /home/dockerredis/data:/data -v /home/dockerredis/log/redis.log:/opt/redis.log -d redis:4.0 redis-server /etc/redis/redis.conf
这样就OK了? 如果有出现下面问题 继续看吧
下面是我遇见的问题
WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.
第一种方法
执行echo 511 > /proc/sys/net/core/somaxconn
第二种方法 vi /etc/sysctl.conf
添加 net.ipv4.conf.default.accept_source_route = 1
保存,然后
sysctl -p
大家在搭建过程有时间不是一帆风顺的
记录下命令
docker stop 容器ID ##停止容器
docker rm 容器ID ##删除容器
docker restart 服务名称 ##重新启动容器
docker inspect 镜像ID ##查询镜像内容
docker rmi 镜像ID ##删除镜像
docker ps -a ##查看所以容器