容器文件系统是易失的,数据库、上传目录必须挂 volume,否则容器一删数据全没。
示例配置
docker volume create pgdata
docker run -d -v pgdata:/var/lib/postgresql/data postgres:16
# 备份卷
docker run --rm -v pgdata:/data -v $PWD:/backup busybox \
tar czf /backup/pg.tar.gz /data
要点速览
- named volume 由 Docker 管理,比 bind mount 更规范。
- 容器重建数据仍在,升级也不丢。
- 备份就是换个容器把卷打包带走。
凡是要活过容器生命周期的数据,都该进 volume。