Я запускаю базу данных контейнера Postgresql Docker на своем сервере с незащищенным портом 5432. После большой нагрузки от пользователей этот контейнер перестал отвечать на запросы порта.
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
И все вернется к работе до другой большой нагрузки.
Почему это происходит?