# docker启动的postgres服务 ## 使用说明 ```sh git clone https://git.wandoubaba.com/wandoubaba/docker-postgres.git cd docker-postgress # chmod +x start ./start ``` 执行结果为启动一个名为postgres的容器,其中运行了postgres服务,默认端口号为5432,默认用户postgres,默认密码123456,默认数据库postgres ## 脚本工具 > 所有脚本在执行之前都需要确保具有可执行权限。 |脚本|作用|用法| |---|---|---| |start|启动服务|./start| |stop|停止服务|./stop| |fulldump|对指定数据库执行全量备份(通过pg_dump实现),其中参数的作用是清除多少天之前的备份,默认值是15天|./fulldump | |clear|危险!!!清空所有数据、备份、日志等文件|./clear| ## 修改默认值 - 如何修改端口号? 在`conf/postgresql.conf`中找到`port = 5432`一行,修改(需要使用`start`脚本重启后才会生效)。 - 如何修改密码? 在`docker-compose.yml`中修改环境变量`POSTGRES_PASSWORD`的值。 - 如何修改默认用户? 在`docker-compose.yml`中设置环境变量`POSTGRES_USER`(fulldump脚本中的脚本可能需要修改)。 - 如何修改默认数据库? 在`docker-compose.yml`中设置环境变量`POSTGRES_DB`(fulldump脚本中的脚本可能需要修改)。 ### 修改配置文件 通过start脚本启动服务时会自动将conf目录下的配置文件应用到容器内,而配置文件中的大部分配置项都需要重启服务才会生效,因些建议每次都直接修改conf目录中的配置文件,然后再执行`./stop && ./start`重启服务。 ## 定时备份 手动调用`fulldump`脚本可以实时备份数据库,将`fulldump`脚本加入到系统crontab定时任务中即可实现定时备份。 下面是一个示例: ```conf # 每天1点备份postgres数据库并清除15天前的备份 0 1 * * * bash /app/dev/postgres/fulldump postgres 15 ```