Comments 9
У меня после:
sudo ufw delete deny 5432/tcp
говорит, что нет такого правила.
а после:
sudo ufw deny 5432/tcp
доступ к постгресу не возможен.
Чудеса.
sudo ufw delete deny 5432/tcp
Добавлена на всякий случай, ибо сталкивался с тем что при установке на корпоративных серверах это правило стоит по стандарту, а также некоторые vps делают тоже самое. sudo ufw deny 5432/tcp запрещает доступ к базе данных со всех ip адресов, кроме разрешенных, все так и должно быть. В идеальном решении должна быть отдельная машина со статическим ip, которой и будет выдан доступ.
Делал по-другому.
На хосте на lo добавлял алиас с нормальным IP (например 10.0.0.1)
Постгрес слушал только на этом интерфейсе, а не на всех и никакой проблемы с торчащей базой в интернет нет (в случае ошибки конфигурации файрвола)
Вы прописываете правила для дефолтной сети docker, так же docker сеть указана в pg_hba.conf, но в самом docker-compose явно не указываете сеть для backend. Определить сеть для сервисов явно будет не лишним.
Непонятно, ради чего всё это затевалось.
"База данных в Docker - ненадёжный способ хранения информации". В чём конкретно заключается ненадёжность и почему всё вдруг стало надёжно, как только база стала работать на хосте, а не в контейнере?
То есть суть проделанных вами действий понятна. Но зачем они были проделаны? В чём преимущество перед базой, лежащей в контейнере? В экономии 20 мб оперативной памяти? :)
Основной причиной стал большой объем информации, которую требовалось мигрировать (1.5 тб). На таких объемах и при длительных операция IO были заметны просадки уже по докеру (его ограничения по сети и т.п.). Плюсом к этому хотелось банальном иметь больше контроля и сэкономить 20 мб оперативной памяти)
К сожалению, так и не увидел ответа на вопрос "причём тут надёжность". Вы как будто на ходу поняли, что надёжность здесь действительно не при чём и решили переключиться на скорость)
Но и здесь тоже большой вопрос. У вас база хранится в вольюме. Это же не write layer контейнера, там оверхед околонулевой. В каких юзкейсах вы столкнулись с хоть сколько-нибудь заметной просадкой производительности?
Простите мою дотошность, но проблема выглядит высосанной из пальца. В докере можно вычисления на гпу запускать, и пропускной способности будет хватать, а тут внезапно база данных на 1.5 тб стала бутылочным горлышком) Очень странно это звучит.
Настройка PostgreSQL на VPS для доступа из Docker контейнера