使用备份 dump.rdb 启动 redis 容器

roo*_*m13 0 redis docker dockerfile docker-compose

我正在尝试使用 docker-compose 部署一个简单的节点 - redis 架构。

我有一个带有 redis 数据备份的dump.rdb,我想启动一个加载了该数据的容器。

我的 docker-compose.yml 看起来像这样:

version: '3'
  services:
      redis:
        image: redis:alpine
        container_name: "redis"
        ports:
            - "6379:6379"
  server:
    build: ./src
    image: hubName:imageName
    container_name: containerName
    links: 
      - redis
    depends_on:
      - "redis"
    ports:
      - "8443:8443"
    restart: always
Run Code Online (Sandbox Code Playgroud)

我应该包括卷吗?如果我想要持久化 redis 数据怎么办?

谢谢 :)

小智 5

您可以使用 docker-compose.yml 像:

version: '3'
services:
  redis:
    image: redis:alpine
    container_name: "redis"
    ports:
      - "6379:6379"
    volumes:
      - /data/redis:/data

  server:
    build: ./src
    image: hubName:imageName
    container_name: containerName
    links: 
      - redis
    depends_on:
      - "redis"
    ports:
      - "8443:8443"
    restart: always
Run Code Online (Sandbox Code Playgroud)

让我们将 dump.rdb 复制到主机上的 /data/redis 文件夹,然后启动 docker-compose。

关于redis持久化,必须有docker卷,redis持久化有两种类型:RDB和AOF

  • RDB:RDB 持久性以指定的时间间隔执行数据集的时间点快照(例如:60 秒或至少 10000 个键已更改)
  • AOF:记录服务器收到的每一次写操作(例如:SET命令),在服务器启动时会再次播放,重建原始数据集

更多信息:https : //redis.io/topics/persistence

您应该根据您的关键数据级别来决定。在这种情况下,您有 rdb 转储,因此您可以使用 RDB,这是默认选项