本文共 4697 字,大约阅读时间需要 15 分钟。
首先确保你已经安装好了docker,如果没安装好,可以简单参考一下
一、docker安装redis
1、搜索redis镜像
docker search redis
2、拉取redis镜像(不指定版本则默认最新版)
docker pull redis //不指定版本,默认拉取最新版docker pull redis:6.0.8 //版本看自己需要了
3、查看镜像
docker images
二、docker启动redis
首先确保你的docker启动了的。通过以下命令查看docker是否启动。
ps -ef |grep docker 查看docker是否启动。systemctl start docker 启动dockersystemctl status docker 查看docker 服务状态systemctl enable docker 设置开机自启动
如下图表示docker正在运行。
好了,回到启动redis步骤。这里提供两种方式启动redis,第一种直接启动,第二种采用外部配置文件方式启动。2.1 直接启动
docker run -d -p 6379:6379 --name 【名字随便取例如myredis】 【redis镜像的repository,通过docker images命令查看】举个栗子:docker run -d -p 6379:6379 --name myredis redis参数说明:-d表示后台运行redis,不至于shutdown就直接退出redis进程了-p 6379:6379 暴露端口,做一个端口映射,映射容器服务的 6379 端口到宿主机的 6379 端口。外部可以直接通过宿主机ip:6379 访问到 Redis 的服务。myredis:随便取一个名字redis:redis镜像的repository,通过docker images命令即可查看到
启动之后通过以下命令查看是否成功启动。
docker ps接下来就可以通过以下命令连接redis服务器了。
docker exec -it myredis redis-cli简单参数说明:myredis为启动的redis服务器名字
2.2 通过外部配置文件redis.conf启动redis
敲重点,首先需要知道一个问题,docker拉取的redis镜像是没有redis.conf文件的。
因此,就需要我们官网上找一个相对应版本的的redis.conf配置文件,可以往低一点点版本找,因为高版本意味着一些bug修复,配置文件中可能会多一些东西(我就是因为这个弄了许久的)
2.2.1 下载redis.conf
这里给出redis的,拉取的镜像是最新的,那么下载上面的redis.conf不会因为配置文件出问题而不能启动。 这个准备工作做好了之后,下面就开始使用docker外部配置文件redis.conf启动redis了。2.2.2 创建外部目录存放配置文件及数据
首先创建配置文件目录存放上面下载的redis.conf配置文件。同时创建data文件夹做数据挂载。这个你可以随便创建,但是位置要记得,因为后面要用。下面给出我创建的为例:
sudo mkdir /usr/local/docker/redis/confsudo mkdir /usr/local/docker/redis/data
我这里创建的目录结构
然后找到下载的redis.conf文件,将其copy到刚刚创建的/usr/local/docker/redis/conf
目录下, cp [你的redis.conf文件所在路径] .解释:中建你的redis.conf路径一定要正确,一般采用绝对路径找到,比如我的redis.conf文件在/etc/redis/redis.conf那么我的复制命令为cp /etc/redis/redis.conf .最后面的 . 表示的是当前目录,因为此时我已经cd到/usr/local/docker/redis/conf下了,否则还是使用绝对路径cp /etc/redis/redis.conf /usr/local/docker/redis/conf/
可根据个人情况修改一些默认配置。(不是必要的最好不修改)
bind 127.0.0.1 #注释掉这部分,这是限制redis只能本地访问 protected-mode no #默认yes,开启保护模式,限制为本地访问 daemonize no#默认no,意为是否以守护进程方式启动,可后台运行,不要改为yes 否则可能redis会启动失败 databases 16 #数据库个数(可选),我修改了这个只是查看是否生效。 dir ./ #输入本地redis数据库存放文件夹(可选) appendonly yes #redis持久化(可选)
接下来我们就可以使用docker通过我们的外部配置文件redis.conf启动redis了。
docker run -d --privileged=true -p 6379:6379 -v /usr/local/docker/redis/conf/redis.conf:/usr/local/etc/redis/redis.conf -v /usr/local/docker/redis/data:/data --name myredis redis redis-server /usr/local/etc/redis/redis.conf
参数解释:
-d:设置redis后台运行 --privileged=true:大约在0.6版,privileged被引入docker。使用该参数,container内的root拥有真正的root权限。否则,container内的root只是外部的一个普通用户权限。 -p 6379:6379 :映射容器服务的 6379 端口到宿主机的 6379 端口。外部可以直接通过宿主机ip:6379 访问到 Redis 的服务。 -v :挂载目录,规则与端口映射相同。Docker目录挂载可以参见 /usr/local/docker/redis/conf/redis.conf:就是之前我们创建的外部配置文件目录 /usr/local/docker/redis/conf/redis.conf:/usr/local/etc/redis/redis.conf:这样在容器启动后,容器内会自动创建/usr/local/etc/redis/redis.conf的目录。通过这种方式,我们可以明确一点,即-v参数中,冒号":"前面的目录是宿主机目录,后面的目录是容器内目录。 /usr/local/docker/redis/data:/data :映射数据目录 redis-server /usr/local/etc/redis/redis.conf:以配置文件启动redis,加载容器内的conf文件,最终找到的是挂载的目录/usr/local/docker/redis/conf/redis.conf
建议第一次启动不加-d
这样在报错之后可以显示出错误信息,如果加上了但是启动不成功想看错误信息的,可以查看docker日志信息。给出简单查看docker日志的命令,详细的docker日志命令参见:
sudo docker logs -t --tail 100 myredis简单参数解释:-t:显示时间100:显示最近100行数据myredis为启动的redis的name
这样每次输入一长串命令太麻烦了,我们通过制作简单脚本进行启动就比较方便了。
mkdir start.sh//创建启动redis脚本文件start.sh。将启动命令放入其中保存并退出。chmod +777 start.sh 修改权限777 代表 rwxrwxrwx 所有用户都可读可写可执行。sh start.sh//启动redis的脚本,将启动命令放入其中即可
关于Linux文件权限简单示例:
在linux终端先输入ll,可以看到如:-rwx-r--r--
(一共10个参数) 表示文件所属组和用户的对应权限。 在当前目录是根目录情况下,如果ll未找到命令 sudo vim ~/.bashrc
找到alias ll=’ls -l’
将前面的’#’(注释)去掉就可以了。(快速查找,vi命令模式下,esc然后输入/,再输入查找内容即可)
2-4参数:属于user5-7参数:属于group8-10参数:属于others接下来就简单了:r==>可读 w==>可写 x==>可执行 r=4 w=2 x=1所以755代表 rwxr-xr-x 777 代表 rwxrwxrwx 所有用户都可读可写可执行。
docker基本命令:
查看所有镜像 docker images删除镜像(会提示先停止使用中的容器) docker rmi 镜像name/镜像id查看所有容器 docker ps -a查看容器运行日志 docker logs 容器名称/容器id停止容器运行 docker stop 容器name/容器id终止容器后运行 docker start 容器name/容器id容器重启 docker restart 容器name/容器id删除容器 docker rm 容器name/容器id
下面关于我在本次过程中遇到的巨坑,其实上面也说了,我之前拉取的redis镜像是6.0.5版本的,然后在网上随便下了一个redis.conf文件(最新版本6.0.8的),然后突然看到说redis6.0.8出现了一些紧急更新(做了哪些更改可参见),其中就有
这些参数在6.0.8以前是没有的(据我所观察的一些版本的配置文件是没有的),因此直接导致在以配置文件方式启动redis时候在oom-score-adj no
这一行就开始报错,于是乎我就找到这个配置文件将这两行注释掉。报错的时候会显示错误行号,因此我们vi进入文件时候可以快速查找,也可以通过让配置文件显示行号方式找到报错位置修改。 vi模式下显示行号命令为: 1、先按esc 2、输入 :(冒号)3、输入 set number或者set nu即可显示行号
修改后保存退出就可以重新启动了。
最后redis想要安全一点尽量设置密码,虽然有些时候有点麻烦。获取redis密码:config get requirepass 设置redis密码:config set requirepass “123456" 设置密码之重新验证身份:auth 123456
这个也可以在redis配置文件中设置,然后重新以修改之后的配置文件启动redis.
扩展:
我们docker pull下来的镜像放哪儿了? 通过docker –version
命令我们可以查看docker版本。 docker目录一般位于/var/lib/docker
其中两个目录: containers:每个序列号都是一个imageimage文件夹:里面有repositories.json的文件,详细记录了各镜像的一些信息。
进入containers,每个序列号都是一个image
希望能帮助大家,如果有什么错误地方,也欢迎各位指出,帮助后来人。转载地址:https://dh-butterfly.blog.csdn.net/article/details/109776892 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!