四、安装reids
1、拉取redis镜像
docker pull redis
1.1补充:
上面这样拉下来是最新的redis 如果想要特定的版本可在redis后加上版本号
docker pull redis:[版本号]
docker pull redis:6.2.3
如果想要知道redis有哪些版本号可以直接去docker hub上找
2、查看下载镜像
docker images
3、docker启动redis
docker 启动redis有两种启动方式 一种是直接启动,一种是用配置文件启动
3.1
直接启动:
docker run -p 6379:6379 \ --network smpe-net --network-alias redis-net \
-v /root/redis/data:/data \ -v /root/redis/redis.conf:/etc/redis/redis.conf \
--name redis -d redis \ redis-server /etc/redis/redis.conf --appendonly yes
命令注解:
挂载Redis的配置文件,/root/redis/是自己创建的文件路径
-v /root/redis/redis.conf:/etc/redis/redis.conf
挂载Redis的数据,即使Redis重启数据不会丢失
-v /root/redis/data:/data
数据持久化
redis-server /etc/redis/redis.conf --appendonly yes
4、补充:
通过外部配置文件redis.conf启动redis
安装redis的时候可以用配置文件来启动,也可以不用。但用配置文件启动可以更好的更改,持久化储存配置。
因为docker安装的redis默认是没有配置文件的,我们需从redis官网下一个。版本用稳定版的(偶数的版本号表示稳定的版本2.0,反之)
4.1
官网下的很慢可以用 https://codechina.csdn.net/mirrors/redis/redis
这个是redis github仓库的镜像仓库,可以直接下载里面的redis.conf 下载好后解压会有一个redis.conf 这个就是官方的redis配置文件
也可以使用wget直接下载到linux上
wget http://download.redis.io/releases/redis-6.0.6.tar.gz
tar xzf redis-6.0.6.tar.gz
cd redis-6.0.6
make
4.2下载好后我们需要修改一些配置(可根据需求自己修改)
bind 127.0.0.1 #注释掉这部分,这是限制redis只能本地访问
protected-mode no #默认yes,开启保护模式,限制为本地访问
daemonize no #默认no,意为是否以守护进程方式启动,可后台运行,不要改为yes 否则可能redis会启动失败
appendonly yes #redis持久化(可选)
requirepass 123456 #设置redis密码
4.3然后我们将redis配置文件上传到linux服务器上。使用xftp或者rz命令,这里就不再赘述
创建目录
mkdir -p /root/redis/conf
把redis配置文件放到/root/redis/conf下
[root@VM-12-14-centos conf]# pwd
/root/redis/conf
[root@VM-12-14-centos conf]# ls
redis.conf
4.4通过配置文件启动:
docker run -p 6379:6379 --name redis -v
/root/redis/redis.conf:/etc/redis/redis.conf -v
/root/redis/data:/data -d --restart=always redis redis-server /etc/redis/redis.conf --appendonly yes --requirepass "1234567890"
设置docker启动会自动启动Redis
--restart=always
设置密码
--requirepass "1234567890"
5、查看是否启动成功
docker ps -a
6、redis补充:
首先说一个结论,docker中下载的redis官方镜像,其中是不存在redis.conf配置文件的,
所以如果需要编辑redis的配置文件,则需要在容器启动的时候,进行一个配置文件映射
在redis官网下载一个完整的redis,一定要和容器中的版本对应,否则有可能存在配置文件有变
动的可能性( 版本互不对应启动失败 ),取出其中的配置文件(redis.conf),使用第三方工具连接到我们的linux机器 将这
个文件上传到一个自己能找到的位置,我看网上其他人博客都写得/usr/local/docker 那我就也跟风选这个文件夹了
Docker挂载配置文件
接下来就是要将redis 的配置文件进行挂载,以配置文件方式启动redis容器。(挂载:即将宿主的
文件和容器内部目录相关联,相互绑定,在宿主机内修改文件的话也随之修改容器内部文件)
为什么需要挂载目录:个人认为docker是个沙箱隔离级别的容器,这个是它的特点及安全机制,不
能随便访问外部(主机)资源目录,所以需要这个挂载目录机制。
命令解释说明:(redis必须设置密码)
docker run : 创建并运行一个容器
--name myredis 给容器起一个名字,比如叫做 myredis,查看和进行操作都比较方便
--restart always: 重启 docker 时,自动启动相关容器
--privileged=true : 获取 root权限
-d redis 表示后台启动redis
-p 6379:6379 将宿主机端口与容器端口映射,冒号左侧是宿主机端口,右侧是容器端口
-v : 数据挂载,把宿主机上面的一些文件、文件夹映射到容器上面。(挂载目录,规则与端口映射相同)
redis:7.0.0: 镜像名称
redis-server /usr/local/etc/redis/redis.conf:以配置文件启动redis,加载容器内的conf文件
--appendonly yes: 开启redis 持久化
”\“ 的意思是: 告诉系统,这个命令还没有结束,需要继续往下面读,这么写是为了提高可读性
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