Docker 启动redis指定配置文件

一.docker中安装好redis后如下,我安装的是reidis5.0.5版本

在这里插入图片描述

二.到redis官网下载一份redis.conf,放到指定目录

redis.conf
放到自己指定的目录:

 /home/docker/redis/config

三.指定redis.conf 启动

docker run -p 6379:6379 --name iredis -v /home/docker/redis/config/redis.conf:/etc/redis/redis.conf -v /home/docker/redis/data:/data -d redis:5.0.5 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 iredis:
容器的名字 iredis 方便以后操作容器(docker start iredis ;docker stop iredis 等等);

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

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

5.-d
后台启动

6.redis:5.0.5 redis-server /etc/redis/redis.conf
redis:5.0.5 是镜像的名称+版本如下
Docker 启动redis指定配置文件_第1张图片
7.redis-server /etc/redis/redis.conf
指定用配置文件的方式启动redis
8. –appendonly yes 开启持久化

四.进入到容器内部验证下是否生成 redis.conf 和 data持久化文件呢?

# 查看下正在运行的docker容器
[root@instance-f4khj00x /]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
2ac032107e05        redis:5.0.5         "docker-entrypoint.s…"   11 minutes ago      Up 11 minutes       0.0.0.0:6379->6379/tcp   iredis

# 进入到容器内部
[root@instance-f4khj00x /]# docker container exec -it 2ac032107e05 /bin/bash

# 进入刚配置的容器目录 /etc/redis/redis.conf
root@2ac032107e05:/data# cd /etc/redis/   
root@2ac032107e05:/etc/redis# ls
redis.conf

# 进入持久化目录data
root@2ac032107e05:/etc/redis# cd /data/
root@2ac032107e05:/data# ls
appendonly.aof	backup.db  dump.rdb  root

你可能感兴趣的:(docker)