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/
开启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权限
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/65770.html