Docker / Redis · 2025年6月14日 0

Docker redis 启动

一、最简单的方法

如果只是希望docker启动redis,不想去繁琐的配置,建议使用以下run命令:

docker run --name redis --restart=always -d -p 6379:6379 redis:7.2 --requirepass 12345600

这个命令会启动最新版redis

二、常规方法

  1. 下载redis镜像
    先到dockerhub官网搜索redis镜像版本,通过docker desktop 查看所有可用的redis镜像版本, 找到其界面提示的pull命令
    不指明redis镜像版本时,docker pull redis默认下载最新版本镜像,如下:
    为了后面更好的解释docker的run命令,我选择一个不是最新版本的redis来做演示

    docker pull redis:7.0.4

使用docker images命令查看当前所有的docker镜像

  1. 下一步就是使用run命令创建并启动镜像,但在启动镜像之前,我们需要去官网下载redis的配置文件redis.conf文件。注意不同版本的redis配置文件内容不一样,要下载对应版本的redis配置文件
    自行创建一个redis.conf文件,将官网的redis.conf内容复制进去即可,然后修改一下配置文件内容

    • 将appendonly持久化设置为yes
    • 将bind注释掉,否则只能本机访问redis (注意这里说的本地是docker容器内部)
    • 设置requirepass密码

如此一来,redis.conf就设置好了,此时在Linux上创建一个redis文件夹去存放redis的配置文件和持久化数据。

  1. 初始化目录
    mkdir -p /docker/redis
    mkdir /docker/redis/data

    把redis.conf放在/docker/redis目录下
    使用run命令创建并启动redis容器

docker run --name redis \
-p 6379:6379 \
-v /docker/redis/redis.conf:/usr/local/etc/redis/redis.conf \
-v /docker/redis/data:/data \
--restart always \
-d redis:7.2 \
redis-server /usr/local/etc/redis/redis.conf

run命令解释:

docker run \
-p 6379:6379 \  docker与宿主机的端口映射
--name redis \  redis容器的名字
-v /docker/redis/redis.conf:/etc/redis/redis.conf \  挂载redis.conf文件
-v /docker/redis/data:/data \  挂在redis的持久化数据
--restart=always \  设置redis容器随docker启动而自启动
-d \后台运行并返回容器id
redis:7.0.4 \
redis-server /etc/redis/redis.conf \  指定redis在docker中的配置文件路径,后台启动redis

使用docker-compose 命令启动

version: '3'

services:
  redis:
    image: redis:7.2
    container_name: redis
    ports:
      - 6379:6379
    volumes:
      - /docker/redis/redis.conf:/usr/local/etc/redis/redis.conf
      - /docker/redis/data:/data
    command: redis-server /usr/local/etc/redis/redis.conf
    restart: always

如果是在项目中的某个目录下,例如src/docker这个目录下,创建的文件夹,那么在yml文件中是可以根据docker-compose.yml文件做路径指定选择

volumes:
  - "./redis/redis_6.2.conf:/usr/local/etc/redis/redis.conf"
  - "./data:/data"
  # ./ 就是当前docker-compose.yml文件的平级路径
  # ../ 表示的就是docker-compose.yml所在目录的上一级