容器文件系统是易失的,数据库、上传目录必须挂 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。