Ali*_*r H 7 redis docker-compose
我想要做的是使用我从生产服务器获取的dump.rdb,并在我的开发环境中使用它,这是由一个非常简单的撰写文件定义的.
为简单起见,假设我的应用程序与redis和flask的docker docs中的这个组合示例相同,所以docker-compose.yml看起来像:
version: '2'
services:
web:
build: .
ports:
- "5000:5000"
volumes:
- .:/code
depends_on:
- redis
redis:
image: redis
Run Code Online (Sandbox Code Playgroud)
这会在重新启动之间持续存在redis数据,但您无法访问redis文件,因为docker-compose.yml中没有为redis安装卷.所以我改变我的compose文件为redis安装一个卷,我也想强制redis来保存数据,官方的redis图像文档说如果我使用'appendonly'就会发生这种情况.
redis:
image: redis
command: redis-server --appendonly yes
volumes:
- ./redis:/data
Run Code Online (Sandbox Code Playgroud)
如果我这样做,我的数据将保持原样,就像它们在原始示例中一样,我现在可以在/ redis路径中看到dump.rdb和appendonly.aof.问题是,如果我想从dump.rdb恢复,我需要关闭appendonly(例如,请参阅数字海洋的如何备份和恢复你的redis-data-on-ubuntu-14 -04),并且没有append-only我看不到如何让compose文件写入卷.
如何生成一个docker compose,它将在我可以切换dump.rdb文件的卷中保留redis,从而将生产快照插入到我的开发环境中?
更新 以下组合有效,但在测试时请耐心等待,因为dump.rdb的创建不是即时的(因此它看起来像是失败了).此外,redis官方图片文档暗示您必须在不使用时使用appendonly:
redis:
image: redis
volumes:
- ./redis:/data
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2257 次 |
| 最近记录: |