Pull to refresh

Comments 5

docker run -d \-p 5432:5432 \--name myPostgreSQL \-e POSTGRES_USER=<ВАШЕ ИМЯ ПОЛЬЗОВАТЕЛЯ> \-e POSTGRES_PASSWORD=<ВАШ ПАРОЛЬ ОТ ЭТОГО ПОЛЬЗОВАТЕЛЯ> \postgres:16

Вы же не смонтировали волюм с данными, все экспортированные данные исчезнут после перезапуска, к тому-же порт постгреса торчит наружу.

Ну и всё делается гораздо легче и быстрее:

rsync -av /home/user/postgres_data new_server_ip:/home/user

Копирует папку с данными и их атрибуты, остается только на new_server запустить образ с Postgres с примонтированными данными.

А если БД большая - так и никого места не хватит, дамп, копия дампа в контейнере, данные из дампа...

В итоге - сборник советов как делать не нужно.

Спасибо, похоже, что так и есть. Но как тогда обращаться к субд, если порт не открывать?

Вариант 1: у Вас PGAdmin и Postgres на одной машине в свойствах подключения можно указать имя или IP контейнера в докерной сети, порт внутри доступен и без расшаривания во вне.

Вариант 2: PGAdmin или любой другой клиент поддерживают подключение через ssh - видел абсолютно в любом клиенте. Тогда в подключении к ssh вбиваете данные от VPS, а в подключении к серверу localhost, тогда, возможно придется пробросить порт через -p, но только на локальный хост: -p127.0.0.1:5432:5432

Поправил запуск контейнера (добавил перезапуск и биндинг с внешней папкой) и добавил замечания к аннотации (надеюсь, больше никого не введу в заблуждение). Про безопасность тоже нам новичкам будет полезно. Спасибо!

Касательно ssh. Перейдите на ключи и отключите парольный доступ. Так жить будет уже спокойнее.

Sign up to leave a comment.

Articles