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

标签 docker redis docker-compose dockerfile

我正在尝试部署一个简单的节点 - 使用 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 volume,redis持久化有两种:RDB和AOF

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

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

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

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

相关文章:

asp.net-core - 如何使用默认容器的 : Register ServiceStack's Redis Client Manager singleton in ASP. NET Core

nginx - Docker 和小型生产服务器基础设施建议

windows - Docker compose - 共享卷 Nginx

docker - Docker登录:无法在Windows + PowerShell上输入用户名的值

postgresql - docker postgresql 容器的循环备份

redis - 如果我总是在 Redis 中获取多个字段,那么哈希总是更可取吗?

redis.clients.jedis.exceptions.JedisConnectionException : Unexpected end of stream

docker - CRON 作业找不到在 docker-compose 中设置的环境变量

docker - docker : Host networking vs hostnames 中的 Prometheus node_exporter

docker - Kubernetes 子域上的访问服务