Docker容器部署的Postgresql升级
容器部署的Postgresl升级实战
最近因为安全问题,想把容器中运行的postgresql 12 升级到新的版本,以postgresql 14 为例,是大版本的升级
1.备份当前运行容器的数据库
$ docker exec -t ataoge/postgresql:12 pg_dumpall -c -U onemap > /data/backups/full.sql
2.运行新的临时的数据库容器
$ docker run -d --name postgresql-temp -v /data/postgres/data:/var/lib/postgresql/data:rw -v /data/backups:/data ataoge/postgresql:14
3.还原数据库
$ docker exec -t postgresql-temp psql -U onemap -f /data/full.sql
4.删除临时数据库
$ docker stop postgresql-temp
$ docker rm postgresql-temp
5.创建新的可用数据库
$ docker run -d --name postgresql-14 -p 5432:5432 -e POSTGRES_USER=onemap -v /data/postgres/data:/var/lib/postgresql/data:rw ataoge/postgresql:14