我正在尝试部署一个简单的节点-使用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

我应该包括卷吗?如果我想保留该Redis数据怎么办?

谢谢 :)

最佳答案

您可以像这样使用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

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

关于Redis持久性,您必须具有docker卷,并且具有两种用于Redis持久性的类型:RDB和AOF
  • RDB:RDB持久性按指定的时间间隔(例如:60秒或至少已更改10000个密钥)执行数据集的时间点快照。
  • AOF:记录服务器接收到的每个写入操作(例如SET命令),这些操作将在服务器启动时再次播放,以重建原始数据集

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

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

    关于docker - 使用备份dump.rdb启动Redis容器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55229293/

    10-15 07:48