15.1docker部署单机redis

1.dockerhub 上下载某版本redis

docker pull redis:6.2.4

2.运行redis镜像

docker run --name aloneRedis -p 6378:6379 -d redis:6.2.4 -v /docker-data/redis/data:/data redis-server --appendonly yes

注:
redis-server --appendonly yes 开启AOF命令追加方式持久化,持久化生成的aof文件会被放入容器中的/data目录中

3.以redis.conf 配置文件的方式启动

3.1 最完整的方式是去redis官网下载对应redis镜像版本的tar包取其中的redis.conf,通过挂载配置文件的方式,同步为容器中redis 的配置。在docker run 的时候指定运行的配置文件。

redis各版本下载地址如下:

http://download.redis.io/releases/

eg:
15.1docker部署单机redis_第1张图片
3.2 修改redis.conf配置文件

开启redis远程访问服务:注释掉 bind 127.0.0.1 或者设置成 0.0.0.0
################################## NETWORK #######################
#bind 127.0.0.1
bind 0.0.0.0
appendonly yes #指定以redis aof方式持久化 尽量保证数据持久化完整性
################################# GENERAL #####################################
daemonize yes #把文件中的daemonize属性改为yes(表明需要在后台运行)
#如果docker命令中指定了-d。表面了在后台运行,此处应该为no,不然启动命令和redis配置中的守护进程启动冲突,导致启动失败
protected-mode no #设置成no(默认是设置成yes的, 防止了远程访问)

修改Redis默认密码 (默认密码为空)
################################## SECURITY #########################
requirepass 123456

3.3 将修改后的配置文件 移动进 服务器(docker 的宿主机),我宿主机器上放置在/usr/local/docker/redis/redis.conf。
3.4 将宿主机中的redis.conf 文件修改权限,不然会出现如下错误

Fatal error, can't open config file '/usr/local/etc/redis/redis.conf': Permission denied
chmod 777 redis.conf #此处我对所有人 可读可写可执行

3.5 docker 启动并指定配置文件

docker run --name docker-redis -p 6379:6379 -v /docker-data/redis/data:/data -v /usr/local/docker/redis/redis.conf:/etc/redis.conf --privileged=true -d redis:6.2.4 redis-server /etc/redis/redis.conf --appendonly yes
注意:在docker中启动redis一定要把:daemonize 设置为 no,这个很重要,如果不是no docker会一直启动失败,原因是docker本身需要后台运行,而这个配置选项也是以守护进程启动,两者会冲突

1.-p 6379:6379:
第一个端口是宿主机端口(服务器端口),第二个端口是容器端口(容器是一个个沙箱外部不不能访问的),将容器的6379端口映射到宿主机的6379端口上,这样可以通过访问宿主机6379来访问redis;

2.--name docker-redis:
容器的名字 docker-redis 方便以后操作容器(docker start docker-redis;docker stop docker-redis等等);

3.-v /usr/local/docker/redis/redis.conf:/etc/redis.conf:
挂载持久化配置
/usr/local/docker/redis/redis.conf :是宿主机(服务器)你自己的redis.conf文件路径
/etc/redis.conf : 容器内部的redis.conf文件路径,不用手动创建,容器启动时会把上边宿主机的redis.conf自动映射到改目录下. 这样在修改redis.conf文件时候就不用进入到容器内部去修改了

4.-v /docker-data/redis/data:/data:
挂载持久化文件
/docker-data/redis/data是宿主机中持久化文件的位置,/data是容器中持久化文件的位置

5.-d :
后台启动

6.redis:6.2.4 redis-server /etc/redis.conf:
redis:6.2.4  是镜像的名称+版本如下

7.redis-server /etc/redis.conf
指定用配置文件的方式启动redis
8. –appendonly yes 开启持久化
9. --privileged=true
使用该参数,container内的root拥有真正的root权限 

15.1docker部署单机redis_第2张图片
3.6 额外备注
记得开放 服务器防火墙上6379端口,如果是阿里云也需要在安全组里配置6378端口

你可能感兴趣的:(docker,redis,docker,缓存)