用于持久化PostgreSQL数据库数据的Docker卷
我正在MacOS机器上启动带有Docker Compose的PostgreSQL server:用于持久化PostgreSQL数据库数据的Docker卷,postgresql,docker,docker-compose,docker-volume,Postgresql,Docker,Docker Compose,Docker Volume,我正在MacOS机器上启动带有Docker Compose的PostgreSQL server: version: '3.1' services: db: image: postgres restart: always environment: POSTGRES_PASSWORD: example ports: - 5432:5432 volumes: - ./dbdata:/var/lib/postgresql/
version: '3.1'
services:
db:
image: postgres
restart: always
environment:
POSTGRES_PASSWORD: example
ports:
- 5432:5432
volumes:
- ./dbdata:/var/lib/postgresql/data
当我使用数据库GUI客户端连接到服务器并创建新数据库时,它工作正常。但是,如果我重新启动容器,数据库就不存在了
$ docker stop postgres_db_1
$ docker start postgres_db_1
但是,如果我对“default”postgres
数据库进行了更改(例如,创建一个新表),则该更改将成功地保留在Docker卷中(我重新启动容器并将其保留在那里)
如您所见,我有以下体积映射:
./dbdata:/var/lib/postgresql/data
此映射是否适用于PostgreSQL server内部的所有数据库?默认路径
/var/lib/PostgreSQL/data
指存储Postgres数据的位置。但是,如果您使用的是文件系统挂载点,则建议使用子目录,例如,/var/lib/postgresql/data/pgdata
作为数据挂载点
实际上,存储位置可以通过服务构建阶段的PGDATA
环境变量进行控制。根据Postgres的说法,PGDATA
与Docker本身无关:
传统上,数据库使用的配置和数据文件
集群一起存储在集群的数据目录中,
通常称为PGDATA(在环境名称之后
可用于定义它的变量)。PGDATA的公共位置
是/var/lib/pgsql/data
默认路径
/var/lib/postgresql/data
是指存储Postgres数据的位置。但是,如果您使用的是文件系统挂载点,则建议使用子目录,例如,/var/lib/postgresql/data/pgdata
作为数据挂载点
实际上,存储位置可以通过服务构建阶段的PGDATA
环境变量进行控制。根据Postgres的说法,PGDATA
与Docker本身无关:
传统上,数据库使用的配置和数据文件
集群一起存储在集群的数据目录中,
通常称为PGDATA(在环境名称之后
可用于定义它的变量)。PGDATA的公共位置
是/var/lib/pgsql/data
马科斯。使用
docker stop postgres\u db\u 1
MacOS。使用docker stop postgres\u db\u 1