为何Docker Compose部署PostgreSQL时需将卷设置为/var/lib/postgresql/data?
Docker中PostgreSQL数据卷路径的常见疑问解答
为什么多数文档都用
/var/lib/postgresql/data作为卷路径?
这个路径是PostgreSQL官方Docker镜像内部默认的数据存储目录,镜像构建时就把它设定为数据库存放数据文件的核心路径。所有基于官方镜像的教程都会使用这个路径做卷挂载,核心目的是将容器内的数据库数据持久化——避免容器被删除、重启后数据丢失。Mac本地找不到
/var/lib/postgresql是正常的
这个路径只存在于PostgreSQL容器(或Docker在Mac上运行的隐藏Linux虚拟机)内部,和你Mac本地的文件系统完全隔离,所以你在本地目录里看不到它是正常的,不需要提前在本地创建这个路径。这是官方默认选项吗?
是的,这是PostgreSQL官方Docker镜像的内置默认配置。当你挂载卷时,分两种情况:- 使用Docker命名卷:比如执行
docker run -v my-pg-data:/var/lib/postgresql/data postgres,Docker会自动在后台创建对应的存储区域,无需你手动创建任何目录; - 使用本地目录挂载:比如执行
docker run -v /Users/你的用户名/pg-data:/var/lib/postgresql/data postgres,这时候才需要你在Mac本地提前创建/Users/你的用户名/pg-data这个目录,容器会把内部数据同步到你指定的本地路径中。
- 使用Docker命名卷:比如执行
内容的提问来源于stack exchange,提问作者yeonsook kwak
相关产品推荐
相关产品推荐

