两种持久化方式
Docker 的命名卷由 Docker 管理存放位置,通常适合数据库等由容器长期写入的数据。目录挂载(bind mount)把主机某个明确目录放进容器,适合需要在主机上编辑的配置、网页和媒体文件。它们都能让重要数据独立于容器的生命周期。
如何选择
如果你希望用主机编辑器直接修改文件,目录挂载最直观;如果主要关心数据库的持久化、迁移和容器间共享,命名卷通常更省心。需要留意:将一个空目录挂载到容器已有数据的路径,可能遮住镜像中原本的文件。
services:
db:
image: postgres:16
volumes:
- pgdata:/var/lib/postgresql/data
volumes:
pgdata:
上述配置说明命名卷的写法,不是完整的数据库生产配置;真正部署还需要用户、密码和数据库初始化设置。
备份不是复制文件这么简单
对文件型服务可以使用快照或暂停写入后备份。数据库更适合采用其官方逻辑备份工具,再通过一次独立恢复测试确认可用。仅仅看见备份文件存在,不代表它能够恢复。
删除命令要格外谨慎
docker compose down 通常保留命名卷;加上 -v 则会删除 Compose 管理的相关卷。清理资源前先用 docker volume ls、docker volume inspect 确认卷归属,尤其不要在含有正式数据的目录里随意试验清理命令。
以上内容用于经验交流。实际操作前,请核对设备型号、软件版本与官方说明,并备份重要配置。