如何在docker-compose启停后保留LocalStack S3存储的数据
问题原因
你使用的latest版本LocalStack镜像属于v2.0及以上版本,原有DATA_DIR配置项已被废弃,仅挂载目录无法触发跨重启的数据恢复,需要额外开启持久化开关。
解决方案
修改docker-compose.yml配置如下:
- 在environment块新增
PERSISTENCE=1参数开启持久化 - 调整挂载路径适配新版本默认的持久化存储目录
/var/lib/localstack
修改后的完整配置:
version: '3.0' services: localstack: image: localstack/localstack:latest environment: - AWS_DEFAULT_REGION=us-east-1 - EDGE_PORT=4566 - SERVICES=sqs,sns,s3 - PERSISTENCE=1 ports: - '4566-4583:4566-4583' volumes: - "/tmp/localstack:/var/lib/localstack" - "/var/run/docker.sock:/var/run/docker.sock"
额外注意事项
- 若宿主机为Linux发行版,不建议将持久化目录挂载到系统
/tmp路径,部分Linux系统默认会在系统重启后清空/tmp下的所有文件,可替换为用户目录下的自定义路径(如~/localstack/data)避免数据丢失。 - 修改配置后重新启动容器再执行写入测试,即可验证down后重启的数据保留效果。
内容的提问来源于stack exchange,提问作者Ehud Lev
相关产品推荐
相关产品推荐

