1. 拉取镜像

docker pull redis

2.数据持久化方式启动


docker run -p 6379:6379 -v $PWD/data:/data --name redis -d redis redis-server --appendonly yes

CONTAINER ID        IMAGE                 COMMAND                  CREATED             STATUS                  PORTS                                                                                                                      NAMES
f69d68786bde        redis                 "docker-entrypoint.s…"   11 seconds ago      Up 3 seconds            0.0.0.0:6379->6379/tcp                                                                                                     redis


命令说明:
-p 6379:6379 : 将容器的6379端口映射到主机的6379端口
-v $PWD/data:/data : 将主机中当前目录下的data挂载到容器的/data
redis-server --appendonly yes : 在容器执行redis-server启动命令,并打开redis持久化配置

3.配置文件方式启动(可配置密码)

redis官网的配置文件地址(按照你的redis版本选择):
https://redis.io/docs/management/config/
3.1先创建文件夹

mkdir /usr/local/docker

3.2用vi命令创建redis.conf,把配置文件复制过来

vi /usr/local/docker/redis.conf

3.3修改启动默认配置(从上至下依次):

bind 127.0.0.1 #注释掉这部分,这是限制redis只能本地访问

protected-mode no #默认yes,开启保护模式,限制为本地访问

daemonize no#默认no,改为yes意为以守护进程方式启动,可后台运行,除非kill进程,改为yes会使配置文件方式启动redis失败

databases 16 #数据库个数(可选),我修改了这个只是查看是否生效。。

dir ./ #输入本地redis数据库存放文件夹(可选)

appendonly yes #redis持久化(可选)

3.4按配置运行命令

docker run -p 6379:6379 --name myredis -v /usr/local/docker/redis.conf:/etc/redis/redis.conf -v /usr/local/docker/data:/data -d redis redis-server /etc/redis/redis.conf --appendonly yes --requirepass 123456789

命令解释说明:

-p 6379:6379 端口映射:前表示主机部分,:后表示容器部分。

–name myredis 指定该容器名称,查看和进行操作都比较方便。

-v 挂载目录,规则与端口映射相同。

为什么需要挂载目录:个人认为docker是个沙箱隔离级别的容器,这个是它的特点及安全机制,不能随便访问外部(主机)资源目录,所以需要这个挂载目录机制。

-d redis 表示后台启动redis

redis-server /etc/redis/redis.conf 以配置文件启动redis,加载容器内的conf文件,最终找到的是挂载的目录/usr/local/docker/redis.conf

–appendonly yes 开启redis 持久化
–requirepass 123456789 设置密码,无则省略

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐