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