我正在使用Docker启动Postgres、Kibana、Elasticsearch和Redis(使用docker-compose up命令)。然而,Redis启动失败,并出现以下错误。您可以在截图中查看最后一个错误行(显示错误的文件格式)。我该如何解决这个问题呢?此外,我不知道如何在终端中使用Docker运行Redis命令,例如./redis-check-aof --fix,如截图所示?
我正在使用Docker启动Postgres、Kibana、Elasticsearch和Redis(使用docker-compose up命令)。然而,Redis启动失败,并出现以下错误。您可以在截图中查看最后一个错误行(显示错误的文件格式)。我该如何解决这个问题呢?此外,我不知道如何在终端中使用Docker运行Redis命令,例如./redis-check-aof --fix,如截图所示?
如Uku所提到的,AOF文件已经损坏,您需要运行一个命令来修复它。针对官方Redis redis:4.0.11-alpine
镜像的正确命令是:
docker-compose run redis redis-check-aof --fix appendonly.aof
redis:7
的docker容器。
appenddirname
参数定义(默认为appendonlydir
)。y/N
来回答(实际上,在按下键后,你看不到Continue [y/N]
;奇怪但是真实的)。按下y
后,你将看到一个成功截断的消息。$ docker compose run --rm -it redis redis-check-aof --fix /data/appendonlydir/appendonly.aof.18.incr.aof
Start checking Old-Style AOF
AOF /data/appendonlydir/appendonly.aof.18.incr.aof format error
AOF analyzed: filename=/data/appendonlydir/appendonly.aof.18.incr.aof, size=25858048, ok_up_to=25857792, ok_up_to_line=511436, diff=256
This will shrink the AOF /data/appendonlydir/appendonly.aof.18.incr.aof from 25858048 bytes, with 256 bytes, to 25857792 bytes
y
Continue? [y/N]: Successfully truncated AOF /data/appendonlydir/appendonly.aof.18.incr.aof
Start checking Old-Style AOF
AOF analyzed: filename=/data/appendonlydir/appendonly.aof.18.incr.aof, size=25857792, ok_up_to=25857792, ok_up_to_line=511436, diff=0
AOF /data/appendonlydir/appendonly.aof.18.incr.aof is valid
编辑: 您的Redis AOF文件已损坏。有两个选项:
1)如果您不关心数据,可以删除卷并重新创建它
2)如果您关心数据,请暂时添加Redis服务的入口点定义:
entrypoint:
- redis-check-aof
- --fix
- /data/appendonly.aof
运行docker-compose up一次,然后将其删除,这样应该可以解决问题。
docker-compose.yml
文件中的 redis
部分,然后像平常一样运行 docker-compose up
。 - Uku Loskit
docker-compose.yml
文件? - mibrl12