【Docker】8. Docker安装Redis

2,423 阅读2分钟
  1. 在Docker Hub上搜索Redis镜像

    20210909173543.png

  2. 在Tags中查找对应版本,复制命令并执行

    20210909173722.png

    docker pull redis:5.0.10
    
  3. 启动基本服务实例

    docker run -p 宿主机端口:6379 --name 容器名 -d redis:5.0.10
    
  4. 开启Redis AOF持久化

    Redis持久化有两种,其中快照持久化是默认开启的,但是Docker官方认为Redis的快照持久化没有什么用,所以官方在Description中对快照持久化没有说明,dump.rdb文件在Redis中也没有。

    官方提供了AOF持久化。

    20210909175944.png

    docker run -p 宿主机端口:6379 --name 容器名 -d redis:5.0.10 redis-server --appendonly yes
    
  5. 查询appendonly.aof文件位置

    开启AOF后,Redis会生成一个appendonly.aof持久化文件,我们需要找到该文件在容器中的路径:/data

    20210909180224.png

  6. 使用数据卷将数据持久化到宿主机

    需要将appendonly.aof持久化文件持久化到宿主机中:

    docker run -p 宿主机端口:6379 --name 容器名 -d -v 数据卷名称:/data redis:5.0.10 redis-server --appendonly yes
    
  7. 如果想要修改Redis配置文件,让Redis按照新配置文件运行

    Redis镜像中是不含有redis.conf配置文件的,所有的默认配置信息都在redis-sever指令中。

    有两种解决方案:

    • Dockerfile

      20210909181246.png

      FROM redis
      COPY redis.conf /usr/local/etc/redis/redis.conf
      CMD [ "redis-server", "/usr/local/etc/redis/redis.conf" ]
      
    • redis-5.0.10.tar.gz的包中,获取配置文件,并上传到宿主机中的某一个目录

      20210909181830.png

      因为redis.conf中配置的访问IP只能是127.0.0.1,所以需要修改redis.conf配置文件

      20210909184009.png

      redis.conf存放在宿主机中的目录与容器中/usr/local/etc/redis挂载数据卷

      最后启动Redis时,需要在redis-server命令之后加上/usr/local/etc/redis/redis.conf,Redis在启动时就会去加载redis.conf中配置的信息了。

      docker run -p 宿主机端口:6379 --name 容器名 -d -v redis.conf在宿主机的目录:/usr/local/etc/redis redis:5.0.10 redis-server /usr/local/etc/redis/redis.conf
      

      其实在这里,无需非要拿到完整的配置文件,我随便建一个文件,内容为"bind 0.0.0.0",然后将该文件的路径替换掉上面命令中的 "redis.conf在宿主机的目录",该配置照样能生效。

      现在Docker中提供的很多镜像都没有携带配置文件,我们需要修改什么配置,只需要单独创建一个文件,遵循原格式把需要修改的配置写到文件中即可。文件名可以自定义,只需提供文件的路径,然后该文件中写的配置就会自动覆盖掉原配置信息中的对应配置。