备份数据
- 进入容器:
docker exec -it postgres bash
- 备份数据:
mkdir -p /var/lib/postgresql/data/bakup
;pg_dumpall -U postgres > /var/lib/postgresql/data/bakup/bakupall.sql
升级容器
- 首先删除容器:
docker-compose down
- 然后备份旧数据:
cd /data/xxx-server/data/
;sudo mv postgres postgres_old
- 最后修改编排文件中postgis的版本号
- 然后再启动容器:
docker-compose up -d
...
postgres:
# image: postgis/postgis:12-3.2
image: postgis/postgis:14-3.4
container_name: postgres
restart: always
ports:
- "5432:5432"
environment:
# 使用上海时区
- TZ=Asia/Shanghai
- POSTGRES_PASSWORD=123456
- POSTGRES_DB=test
volumes:
- /data/xxx-server/data/postgres:/var/lib/postgresql/data
...
恢复数据
- 拷贝备份的数据:
cd /data/xxx-server/data/
;sudo cp -r postgres_old/bakup postgres/bakup
- 进入容器:
docker exec -it postgres bash
- 执行数据恢复命令:
psql -U postgres < /var/lib/postgresql/data/bakup/bakupall.sql
遇到的问题
升级后远程登录密码不对了,需要手动修改密码:alter user postgres password '123456';