我在服务器上使用暴露的端口5432运行一个Postgresql Docker容器数据库。在用户沉重的负载之后,该容器对该端口不再响应。
docker run -d --env POSTGRES_PASSWORD=postgres --env POSTGRES_USER=user --env POSTGRES_DB=database -p 5432:5432 password
要解决此问题,我需要进入容器,进行备份,重新启动容器并导入备份。
$ docker exec -it [id] sh
# pg_dump -U user dbname > dbexport.pgsql
# exit
$ docker cp [id]:/backup.pgsql ~/backup.pgsql
$ docker stop [id]
$ docker run -d --env POSTGRES_PASSWORD=postgres --env POSTGRES_USER=user --env POSTGRES_DB=database -p 5432:5432 password
$ docker exec -it [id] sh
# psql -U user database < backup.pgsql
# exit
一切恢复正常,直到其他沉重的负担。
为什么会这样?