powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Docker+PostgreSQL+база
60 сообщений из 60, показаны все 3 страниц
Docker+PostgreSQL+база
    #39966997
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хочу в Windows создать докер с PostgreSQL+ моя база. Типа демо для юзера.
Сохранять данные в базе между запусками докера хотелось бы, но на первом шаге не обязательно.
Как ?
Есть готовые докеры с постгрес, но как туда добавить свою базу?
...
Рейтинг: 0 / 0
Docker+PostgreSQL+база
    #39967002
Sergej Grischenkow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Docker+PostgreSQL+база
    #39967004
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergej Grischenkow


Это хорошо, как сделать свой контейнер из этого + своя демо база?
...
Рейтинг: 0 / 0
Docker+PostgreSQL+база
    #39967008
Guzya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вам надо:
1. создать docker volume, там будут храниться данные
Код: sql
1.
docker volume create <pg_volume>



2. запустить контейнер с подключенным volume из п. 1 в папку PGDATA
Код: sql
1.
docker run -d --rm  -p 5432:5432 -v pg_volume:/var/lib/postgresql/data   postgres



3. подключиться к контейнеру и ч\з утилиту psql создать бд и все, что Вам надо
id_контейнера - первые несколько цифр(3-4) выведенные в п.2

Код: sql
1.
docker exec -it <id_контейнера> /bin/bash



4. остановить контейнер
Код: sql
1.
docker stop <id_контейнера>
...
Рейтинг: 0 / 0
Docker+PostgreSQL+база
    #39967009
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Guzya
Вам надо:
1. создать docker volume, там будут храниться данные
Код: sql
1.
docker volume create <pg_volume>



2. запустить контейнер с подключенным volume из п. 1 в папку PGDATA
Код: sql
1.
docker run -d --rm  -p 5432:5432 -v pg_volume:/var/lib/postgresql/data   postgres



3. подключиться к контейнеру и ч\з утилиту psql создать бд и все, что Вам надо
id_контейнера - первые несколько цифр(3-4) выведенные в п.2

Код: sql
1.
docker exec -it <id_контейнера> /bin/bash



4. остановить контейнер
Код: sql
1.
docker stop <id_контейнера>




Если я отдам контейре юзеру, он должен будет проделывать шаги 2-4 ? Так не проходит.
Хотелось бы отдать юзеру контейнер, чтобы он запустил контейнер и там уже была база: т.е. пустил это контейнер, пустил приложение, коннектнулся к базе и мог пробовать
...
Рейтинг: 0 / 0
Docker+PostgreSQL+база
    #39967012
Guzya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Тогда так:

1. стартуете контейнер
Код: sql
1.
docker run -d postgres



2. подключаетесь к контейнеру
Код: sql
1.
docker exec -it <id_контейнера> /bin/bash



3. ч\з psql производите создание, настройку и т.д. БД

4. останавливаете контейнер
Код: sql
1.
docker stop <id_контейнера>



5. создаете из этого контейнера образ (image)
<название_образа> - состоит из названия репозитория где будет храниться образ и тега
Код: sql
1.
docker commit <id_контейнера> <название_образа>



6. надо положить (push) созданный образ в репозиторий для дальнейшего использования другими

После этого можно просто запускать
Код: sql
1.
docker run -d --rm -p 5432:5432  <название_образа>
...
Рейтинг: 0 / 0
Docker+PostgreSQL+база
    #39967015
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
о, это уже больше похоже на то, что мне хотелось бы получить.

А если большой скрипт с данными и т.д.? вроде можно как-то так:
1. беру https://hub.docker.com/_/postgres/ с постгресом 12
2. засовываю свой скрипт в существующий контейнер, чтобы он выполнялся всегда на старте
3. сохраняю как новый контейнер.

Вот пункт 2 - как сделать?
...
Рейтинг: 0 / 0
Docker+PostgreSQL+база
    #39967024
Guzya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В п.2 Вы просто цепляетесь к запущенному контейнеру, т.е. Вас docker подключит к консоли контейнера.
Дополнительно посмотреть id_контейнера можно командой
Код: sql
1.
docker ps



Еще одна полезная команда, копирование файлов\папок в запущенный контейнер

Код: sql
1.
docker cp /media/guzya/data/Работа_2/PostgresSQL/postgresql-12.1/  <id_контейнера>:/postgres_src/



Скопируйте Ваш скрипт и выполните его.

Еще один момент, для сокращения размеров конечного образа, удаляйте не нужные файлы (Ваш скрипт).
...
Рейтинг: 0 / 0
Docker+PostgreSQL+база
    #39967032
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Guzya
В п.2 Вы просто цепляетесь к запущенному контейнеру, т.е. Вас docker подключит к консоли контейнера.
Дополнительно посмотреть id_контейнера можно командой
Код: sql
1.
docker ps



Еще одна полезная команда, копирование файлов\папок в запущенный контейнер

Код: sql
1.
docker cp /media/guzya/data/Работа_2/PostgresSQL/postgresql-12.1/  <id_контейнера>:/postgres_src/



Скопируйте Ваш скрипт и выполните его.

Еще один момент, для сокращения размеров конечного образа, удаляйте не нужные файлы (Ваш скрипт).


понял, вот смотрите еще момент:

В этом контейнере
https://hub.docker.com/layers/postgres/library/postgres/12.3-alpine/images/sha256-a9ae8fdf8709010fece3cf27c8bd283c8a9b49c6033e04e3a273a9584c91df6c?context=explore

Написано:
ADD file ... in /
CMD ["/bin/sh"]
/bin/sh -c set -eux; addgroup
ENV LANG=en_US.utf8
/bin/sh -c mkdir /docker-entrypoint-initdb.d

Так вот это
/docker-entrypoint-initdb.d

Туда можно поместить свой скрипт?
...
Рейтинг: 0 / 0
Docker+PostgreSQL+база
    #39967042
Guzya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Видимо оно

Initialization scripts
...
Рейтинг: 0 / 0
Docker+PostgreSQL+база
    #39967048
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Guzya
Тогда так:

1. стартуете контейнер
Код: sql
1.
docker run -d postgres



2. подключаетесь к контейнеру
Код: sql
1.
docker exec -it <id_контейнера> /bin/bash



3. ч\з psql производите создание, настройку и т.д. БД

4. останавливаете контейнер
Код: sql
1.
docker stop <id_контейнера>



5. создаете из этого контейнера образ (image)
<название_образа> - состоит из названия репозитория где будет храниться образ и тега
Код: sql
1.
docker commit <id_контейнера> <название_образа>



6. надо положить (push) созданный образ в репозиторий для дальнейшего использования другими

После этого можно просто запускать
Код: sql
1.
docker run -d --rm -p 5432:5432  <название_образа>





где-то я торможу: все делаю как написано, но сделав пункт 4 не могу сделать коммит, пишет нет такого контейнера, и
>docker ps
пусто
...
Рейтинг: 0 / 0
Docker+PostgreSQL+база
    #39967050
Guzya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Покажите команду запуска, в ней НЕ должно быть --rm .

Посмотреть все запущенные\выключенные контейнеры можно

Код: sql
1.
docker ps -a
...
Рейтинг: 0 / 0
Docker+PostgreSQL+база
    #39967053
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Guzya
Покажите команду запуска, в ней НЕ должно быть --rm .

Посмотреть все запущенные\выключенные контейнеры можно

Код: sql
1.
docker ps -a



Здесь целая туча всяких моих докеров
docker ps -a

Пускал так:
docker run -it --name pgalp --rm -e POSTGRES_PASSWORD=postgres -p5401:5432 postgres:12.3-alpine
...
Рейтинг: 0 / 0
Docker+PostgreSQL+база
    #39967057
Guzya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ролг Хупин, так попробуйте

Код: sql
1.
docker run -it --name pgalp -e POSTGRES_PASSWORD=postgres -p 5401:5432 postgres:12.3-alpine



Если у Вас linux, можно так грохнуть все выключенные контейнеры

Код: sql
1.
docker rm $(docker ps -aq)
...
Рейтинг: 0 / 0
Docker+PostgreSQL+база
    #39967059
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Guzya
Ролг Хупин, так попробуйте

Код: sql
1.
docker run -it --name pgalp -e POSTGRES_PASSWORD=postgres -p 5401:5432 postgres:12.3-alpine



Если у Вас linux, можно так грохнуть все выключенные контейнеры

Код: sql
1.
docker rm $(docker ps -aq)



Windows.
понял, надо убрать флаг удаления rm.
...
Рейтинг: 0 / 0
Docker+PostgreSQL+база
    #39967061
Guzya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Попробуйте для удаления всех контейнеров

Код: sql
1.
docker ps -aq | docker rm
...
Рейтинг: 0 / 0
Docker+PostgreSQL+база
    #39967070
Guzya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Попробуйте так собрать образ:

1. создайте в папке с нужным скриптом файл с названием Dockerfile и содержимым
Код: sql
1.
2.
FROM postgres:12.3-alpine
COPY <Ваш_файл> /docker-entrypoint-initdb.d/



Желательно, что бы в этой папке больше ни чего не было.

2. после этого в терминале в директории с файлом запустите сборку
Код: sql
1.
docker build .  -t <название_образа>



Точка "." в команде обязательна (указание на текущую папку).

3. проверяйте, что образ собран
Код: sql
1.
docker image ls



4. пробуйте
...
Рейтинг: 0 / 0
Docker+PostgreSQL+база
    #39967072
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Guzya
Попробуйте для удаления всех контейнеров

Код: sql
1.
docker ps -aq | docker rm



так не прошло, сделал так
PowerShell> docker ps -aq | foreach {docker rm $_}
...
Рейтинг: 0 / 0
Docker+PostgreSQL+база
    #39967091
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Guzya
Попробуйте так собрать образ:

1. создайте в папке с нужным скриптом файл с названием Dockerfile и содержимым
Код: sql
1.
2.
FROM postgres:12.3-alpine
COPY <Ваш_файл> /docker-entrypoint-initdb.d/



Желательно, что бы в этой папке больше ни чего не было.

2. после этого в терминале в директории с файлом запустите сборку
Код: sql
1.
docker build .  -t <название_образа>



Точка "." в команде обязательна (указание на текущую папку).

3. проверяйте, что образ собран
Код: sql
1.
docker image ls



4. пробуйте




Уперся в свою же идею

Сделал скрипт, который по идее надо бы запустить

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
create database pm_db;
-- <-----------------------переключиться на созданную базу?
create table params
(
id int not null primary key,
name text
);

insert into params(id, name) values(0, 'value 1');
insert into params(id, name) values(1, 'value 2');



Но после создания базы надо бы в ней создать таблицу, т.е. переключить конекст?
...
Рейтинг: 0 / 0
Docker+PostgreSQL+база
    #39967094
Guzya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сделайте где-нибудь бд и слейте pg_dump-ом бэкап, собственно его и подсовывайте.

Я провел эксперимент использовав в качестве скрипта Демонстрационная база данных с postgrespro
и Dockerfile
Код: sql
1.
2.
FROM postgres:12.3-alpine
COPY demo-small-20170815.sql /docker-entrypoint-initdb.d/



Работает, но у Вас каждый раз при старте контейнера, будет идти эта долгая процедура инициализации.
Если этого не нужно, то уже этот запущенный и проинициализированный контейнер и надо закомитить в образ.
...
Рейтинг: 0 / 0
Docker+PostgreSQL+база
    #39967096
Guzya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Только из бэкапа удалите команду DROP DATABASE ....; , а то скрипт на ней падает.

По поводу переключения контекста

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
--
-- PostgreSQL database dump
--

...................................................
DROP DATABASE demo;  -- надо удалить


CREATE DATABASE demo;

\connect demo

...................................................
...
Рейтинг: 0 / 0
Docker+PostgreSQL+база
    #39967097
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Guzya
Попробуйте так собрать образ:

1. создайте в папке с нужным скриптом файл с названием Dockerfile и содержимым
Код: sql
1.
2.
FROM postgres:12.3-alpine
COPY <Ваш_файл> /docker-entrypoint-initdb.d/



Желательно, что бы в этой папке больше ни чего не было.

2. после этого в терминале в директории с файлом запустите сборку
Код: sql
1.
docker build .  -t <название_образа>



Точка "." в команде обязательна (указание на текущую папку).

3. проверяйте, что образ собран
Код: sql
1.
docker image ls



4. пробуйте


Прошел всю инструкцию, получил, что хотел.
Построил свой образ на основе существующего + мой скрипт, потом запустил новый - новая база с таблицей и данными там есть!!!
Спасибо за офигенную помощь. :-)

PS. Теперь, конечно, тянет найти решение: чтобы данные юзера осохранялись между стартами этого докера
...
Рейтинг: 0 / 0
Docker+PostgreSQL+база
    #39967100
Guzya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Это тот самый docker volume (это по красивому), а еще можно без volume, просто папку монтировать причем ч\з те же ключи.
...
Рейтинг: 0 / 0
Docker+PostgreSQL+база
    #39967102
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Guzya
Это тот самый docker volume (это по красивому), а еще можно без volume, просто папку монтировать причем ч\з те же ключи.


ага, если я правильно понимаю:
запускаю докер и указываю мэп той директории в докере, где постгрес держит базу -> на какой-то внешний фолдер на хосте.
И когда стартует докер, то все, что будет создаваться в директории в докере будет видно во внешнем фолдере?
И рестартуя докер постгрес будет подхватывать те файлы, которые уже есть в мэпнутом фолдере?
Получается достаточно мэпнуть директорию с базой и практически - всё сделано?
...
Рейтинг: 0 / 0
Docker+PostgreSQL+база
    #39967105
Guzya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Мап указывается при старте контейнера, например:
Ваш текущий образ имеет некую дефолтную бд с дефолтными данными "зашитыми" в образ

- при старте просто контейнера без мапа вы получите эти данные,

- при старте контейнера с мапом на volume\директорию в нее автоматом запишутся данные из точки монтирования+все новое, что будет писаться в эту
директорию. После выключения\уничтожения контейнера информация будет сохранена.

- если Вы снова хотите получить дефолтные данные, Вы просто стартуете контейнер без мапа или мапируете другие volume\директорию



Например Вы можете написать скрипт, в котором будет проверяться имеется ли на машине некий volume
, если нет, то создавать его, а дальше уже запускать контейнер с мапом на этот volume.
Просмотр имеющихся volume
Код: sql
1.
docker volume ls


Информация по конкретному volume
Код: sql
1.
docker volume inspect <volume>
...
Рейтинг: 0 / 0
Docker+PostgreSQL+база
    #39968297
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На другой машине построил тот же докер: postgresql+мой скрипт для создания базы и таблицы, запустил

автор> docker run -it --name pg2301 -e POSTGRES_PASSWORD=postgres -p5430:5432 pg23
LOG: starting PostgreSQL 12.3 on x86_64-pc-linux-musl, compiled by gcc (Alpine 9.2.0) 9.2.0, 64-bit
LOG: listening on IPv4 address "0.0.0.0", port 5432
LOG: listening on IPv6 address "::", port 5432
LOG: listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
LOG: database system was shut down at 2020-06-11 10:40:29 UTC
LOG: database system is ready to accept connections


Пытаюсь коннектнуться клиентом с хоста на localhost:5430 пишет

авторCould not connect to server: Connection timed out. Is the server running on host "127.0.0.1" and accepting TCP/IP connections on port 5430?

Куда смотреть?
...
Рейтинг: 0 / 0
Docker+PostgreSQL+база
    #39968306
Guzya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
postgresql.conf

Код: sql
1.
listen_addresses = '*'
...
Рейтинг: 0 / 0
Docker+PostgreSQL+база
    #39968318
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Guzya
postgresql.conf

Код: sql
1.
listen_addresses = '*'



Странно то, что это тот же докер, я строил его на другой машине (см. эту тему), и он работал.
На другой машине построил и пустил, все настройки - те же, и такая фигня.
докер файл:
авторFROM postgres:12.3-alpine
COPY work.sql /docker-entrypoint-initdb.d/


Что интересно: запустил докер
>docker run -it --name pg2301 -e POSTGRES_PASSWORD=postgres -p5430:5432 pg23

пускаю на хосте nmap - есть 5432, а 5430 - нету.

авторScanning localhost (127.0.0.1) [1000 ports]
Discovered open port 554/tcp on 127.0.0.1
Discovered open port 445/tcp on 127.0.0.1
Discovered open port 135/tcp on 127.0.0.1
Discovered open port 443/tcp on 127.0.0.1
Discovered open port 2869/tcp on 127.0.0.1
Discovered open port 9000/tcp on 127.0.0.1
Discovered open port 49154/tcp on 127.0.0.1
Discovered open port 49153/tcp on 127.0.0.1
Discovered open port 10243/tcp on 127.0.0.1
Discovered open port 5432/tcp on 127.0.0.1
Discovered open port 1434/tcp on 127.0.0.1
Discovered open port 5357/tcp on 127.0.0.1
Discovered open port 49159/tcp on 127.0.0.1
Discovered open port 902/tcp on 127.0.0.1
Discovered open port 1433/tcp on 127.0.0.1
Discovered open port 843/tcp on 127.0.0.1
Discovered open port 912/tcp on 127.0.0.1
Discovered open port 49152/tcp on 127.0.0.1
...
Рейтинг: 0 / 0
Docker+PostgreSQL+база
    #39968342
Guzya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Запустите контейнер, а потом командой посмотрите порты

Код: sql
1.
docker port id_конт



На всякий случай telnet-ом попробуйте к порту прицепиться.
...
Рейтинг: 0 / 0
Docker+PostgreSQL+база
    #39968388
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Guzya
Запустите контейнер, а потом командой посмотрите порты

Код: sql
1.
docker port id_конт



На всякий случай telnet-ом попробуйте к порту прицепиться.


>docker ps
PORT
... 0.0.0.0:5430->5432/tcp

>docker port ID
5432/tcp -> 0.0.0.0:5430
...
Рейтинг: 0 / 0
Docker+PostgreSQL+база
    #39968491
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Guzya
Запустите контейнер, а потом командой посмотрите порты

Код: sql
1.
docker port id_конт



На всякий случай telnet-ом попробуйте к порту прицепиться.



Я в другом разделе задал вопрос по Докеру, если будет время и желание посмотрите
https://www.sql.ru/forum/1326306/docker
...
Рейтинг: 0 / 0
Docker+PostgreSQL+база
    #39968513
Guzya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Так с портами срослось или нет?
...
Рейтинг: 0 / 0
Docker+PostgreSQL+база
    #39968551
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Guzya
Так с портами срослось или нет?


есть
машина 1: windows 10 - тут все работает, как и было в первый раз проделано
машина 2: windows 7 - тут ни *** не работает, не пойму в чем причина.

Вернулся на машину 1 - перепроверил, добавил реальный скрипт инициализации базы, еще один для добавления данных - сработал, база с данными , все ок.
...
Рейтинг: 0 / 0
Docker+PostgreSQL+база
    #39968589
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Guzya
Это тот самый docker volume (это по красивому), а еще можно без volume, просто папку монтировать причем ч\з те же ключи.


Вот мой Dockerfile
авторFROM postgres:12.3-alpine
COPY 01str.sql /docker-entrypoint-initdb.d/
COPY 02data.sql /docker-entrypoint-initdb.d/


Он использует уже существующий postgres:12.3-alpine и добавляет пару скриптов, все работает.

Как прикрутить volume, чтобы данные сохранялись?

Вот в примере для Docker-compose
https://docs.docker.com/compose/wordpress/

данные в базе сохраняются между ап и даунб они указывают
volumes:
- db_data:/var/lib/mysql

И никакого мэпа на фолдер на хосте нету.
...
Рейтинг: 0 / 0
Docker+PostgreSQL+база
    #39968624
Guzya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот тут вроде хорошо описано

Тома или volumes в docker-compose
...
Рейтинг: 0 / 0
Docker+PostgreSQL+база
    #39968631
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Guzya
Вот тут вроде хорошо описано

Тома или volumes в docker-compose


кстати, сделал, данные сохраняются между стартами докера
Но не совсем понятно:

автор>docker volume create --name=pgdata
>docker run -it --name p511 -v pgdata:/var/lib/postgresql/data -e POSTGRES_PASSWORD=postgres -p5438:5432 p25


получается, что сам волюм физически хранится где-то на хосте?
...
Рейтинг: 0 / 0
Docker+PostgreSQL+база
    #39968635
Guzya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Еще тут в комментария[ хорошо описали

Хабр

Получается, при правильном описании volume в файле compose, он создастся автоматом.

Посмотреть, где физически на хосте храниться volume можно командой

Код: sql
1.
docker volume inspect vol_name
...
Рейтинг: 0 / 0
Docker+PostgreSQL+база
    #39968697
Sergej Grischenkow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ролг Хупин,

> данные в базе сохраняются между ап и даунб они указывают
> volumes:
> - db_data:/var/lib/mysql

> И никакого мэпа на фолдер на хосте нету.

Они сохраняются в /var/lib/docker/volumes
...
Рейтинг: 0 / 0
Docker+PostgreSQL+база
    #39968749
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Guzya
postgresql.conf

Код: sql
1.
listen_addresses = '*'




Сделал свой докер, как было здесь описано с таким dockerfile:

авторFROM postgres:12.3-alpine
COPY demo-small-20170815.sql /docker-entrypoint-initdb.d/


Вопросы:
1. Как в построенном докере изменить postgresql.conf
Код: sql
1.
listen_addresses = '*'



2. Так работает, данные в базе сохраняются, но япередаю этот докер юзеру: как избавиться от создания волюма руками в этом примере?

автор1. создать docker volume, там будут храниться данные
docker volume create <pg_volume>
2. запустить контейнер с подключенным volume из п. 1 в папку PGDATA
docker run -d --rm -p 5432:5432 -v pg_volume:/var/lib/postgresql/data postgres
...
Рейтинг: 0 / 0
Docker+PostgreSQL+база
    #39968753
Guzya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
1. положите в скрипты инициализации скрипт, который будет менять настройку
только путь до postgresql.conf свой укажите
Код: sql
1.
sed -i "s/#listen_addresses = 'localhost'/listen_addresses = '*'/" /postgres/data/postgresql.conf



2. Вы ч\з compose делаете или нет?
...
Рейтинг: 0 / 0
Docker+PostgreSQL+база
    #39968756
Guzya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Такой docker-compose файл сам создаст volume и будет его автоматом цеплять

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
version: "2"
services:
  db:
    image: post:test
    volumes:
      - "dbdata:/postgres/data"

volumes:
  dbdata:
...
Рейтинг: 0 / 0
Docker+PostgreSQL+база
    #39968759
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Guzya
1. положите в скрипты инициализации скрипт, который будет менять настройку
только путь до postgresql.conf свой укажите
Код: sql
1.
sed -i "s/#listen_addresses = 'localhost'/listen_addresses = '*'/" /postgres/data/postgresql.conf



2. Вы ч\з compose делаете или нет?


2. Не, я делаю, как обсуждалось здесь
--------
Dockerfile:

FROM postgres:12.3-alpine
COPY 01_script.sql /docker-entrypoint-initdb.d/
COPY 02_script.sql /docker-entrypoint-initdb.d/

--------------
>docker build . -t pgpm23
>docker run -it --name pgpm2301 -e POSTGRES_PASSWORD=postgres -p5438:5432 pgpm23


1. Так самое интересно: на машине1 (W10) все работает, а на машине2 (W7) - фигушки
Значит настройки постгреса нормальные, раз на одной машине все проодит.
При запущенном контейнере, к которому подключение на машине2 не работает

авторcould not connect to server: Connection refused (0x0000274D/10061)
Is the server running on host "localhost" (::1) and accepting TCP/IP connections on port 5438?


Посмотрел
pg_hba.conf

автор# TYPE DATABASE USER ADDRESS METHOD

# "local" is for Unix domain socket connections only
local all all trust
# IPv4 local connections:
host all all 127.0.0.1/32 trust
# IPv6 local connections:
host all all ::1/128 trust
# Allow replication connections from localhost, by a user with the
# replication privilege.
local replication all trust
host replication all 127.0.0.1/32 trust
host replication all ::1/128 trust
host all all all md5



postgresql.conf

bash-5.0# cat postgresql.conf # use data in another directory
# ----------------------------- # (change requires restart)
#hba_file = 'ConfigDir/pg_hba.conf' # host-based authentication file
# ----------------------------- # (change requires restart)
#ident_file = 'ConfigDir/pg_ident.conf' # ident configuration file
# This file consists of lines of the for# (change requires restart)
#
# If external_pid_file is not explicitly set, no extra PID file is written.
#external_pid_file = '' # write an extra PID file
# (The "=" is optional.) Whitespace may# (change requires restart)roduced with
# "#" anywhere on a line. The complete list of parameter names and allowed
# values can be found in the PostgreSQL documentation.
#------------------------------------------------------------------------------
# CONNECTIONS AND AUTHENTICATIONwn in this file represent the default values.
#------------------------------------------------------------------------------
# you need to reload the server.
# - Connection Settings -
# This file is read on server startup and when the server receives a SIGHUP
listen_addresses = '*' the file on a running system, you have to SIGHUP the
# server for the changes to take effect,# comma-separated list of addresses;
# "SELECT pg_reload_conf()". Some param# defaults to 'localhost'; use '*' for all
# require a server shutdown and restart # (change requires restart)
#port = 5432 # (change requires restart)
max_connections = 100lso be given as a c# (change requires restart)erver, e.g.,
#superuser_reserved_connections = 3 Som# (change requires restart) at run time
#unix_socket_directories = '/var/run/postgresql' # comma-separated list of directories
# # (change requires restart)
#unix_socket_group = ''ilobytes T# (change requires restart)nds
#unix_socket_permissions = 0777 # begin with 0 to use octal notation
# GB = gigabytes # (change requires restart)
#bonjour = off TB = terabytes # advertise server via Bonjour
# # (change requires restart)
#bonjour_name = '' # defaults to the computer name
# (change requires restart)
#---------------------------------------# TCP_KEEPIDLE, in seconds;------------
# - TCP settings - # 0 selects the system default
#tcp_keepalives_interval = 0s-----------# TCP_KEEPINTVL, in seconds;-----------
# 0 selects the system default
#tcp_keepalives_count = 0hese variables # 0 selects the system default-line
#tcp_user_timeout = 0vironment variable,# 0 selects the system defaultconds;
# 1s-600s
#password_encryption = md5ir' # md5 or scram-sha-256
#db_user_namespace = off
#authentication_timeout = 1min
# GSSAPI using Kerberos
#krb_server_keyfile = ''
#krb_caseins_users = off

# - SSL -

#ssl = off
#ssl_ca_file = ''
#ssl_cert_file = 'server.crt'
#ssl_crl_file = ''
#ssl_key_file = 'server.key'
#ssl_ciphers = 'HIGH:MEDIUM:+3DES:!aNULL# min 128kB SSL ciphers
#ssl_prefer_server_ciphers = on # (change requires restart)
#huge_pages = try 'prime256v1' # on, off, or try
#ssl_min_protocol_version = 'TLSv1' # (change requires restart)
#temp_buffers = 8MBersion = '' # min 800kB
#max_prepared_transactions = 0 # zero disables the feature
#ssl_passphrase_command = '' # (change requires restart)
# Caution: it is not advisable to set max_prepared_transactions nonzero unless
# you actively intend to use prepared transactions.
#work_mem = 4MB # min 64kB
#maintenance_work_mem = 64MB------------# min 1MB------------------------------
#autovacuum_work_mem = -1WAL) # min 1MB, or -1 to use maintenance_work_mem
#max_stack_depth = 2MB------------------# min 100kB----------------------------
#shared_memory_type = mmap # the default is the first option
# - Memory - # supported by the operating system:
# mmap
shared_buffers = 128MB # windows
# the default is the first option
dynamic_shared_memory_type = posix # posixed by the operating system:
# windows
# (change requires restart)
# limits per-process temp file space
# - Disk - # in kB, or -1 for no limit

# - Kernel Resources - # min 25
# (change requires restart)
#max_files_per_process = 1000 # 0-100 milliseconds (0 disables)
#vacuum_cost_page_hit = 1ay - # 0-10000 credits
#vacuum_cost_page_miss = 10 # 0-10000 credits
#vacuum_cost_page_dirty = 20 # 1-10000 credits
#vacuum_cost_limit = 200 # 10-10000ms between rounds
#bgwriter_lru_maxpages = 100 # max buffers written/round, 0 disables
#bgwriter_lru_multiplier = 2.0 # 0-10.0 multiplier on buffers scanned/round
#bgwriter_flush_after = 512kB # 1-1000; 0 disables prefetching
#max_worker_processes = 8 # (change requires restart)
#max_parallel_maintenance_workers = 2 # taken from max_parallel_workers
#max_parallel_workers_per_gather = 2 # taken from max_parallel_workers
#parallel_leader_participation = on # maximum number of max_worker_processes that
#max_parallel_workers = 8 # 1min-60d; -1 disables; 0 is immediate
#old_snapshot_threshold = -1 # measured in pages, 0 disables
#backend_flush_after = 0 # minimal, replica, or logical
# (change requires restart)
#fsync = on-----------------------------# flush data to disk for crash safety--
# WRITE-AHEAD LOG # (turning this off can cause
#---------------------------------------# unrecoverable data corruption)-------
#synchronous_commit = on # synchronization level;
# - Settings - # off, local, remote_write, remote_apply, or on
#wal_sync_method = fsync # the default is the first option
#wal_level = replica # open_datasynce operating system:
# fsyncsync (default on Linux)
# open_synctethrough
#full_page_writes = on # enable compression of full-page writes
#wal_log_hints = offff # (change requires restart)of non-critical updates
#wal_init_zero = on # recycle WAL files files
#wal_buffers = -1 # (change requires restart)n shared_buffers
#wal_writer_delay = 200ms # measured in pages, 0 disables
#wal_writer_flush_after = 1MB # range 0-100000, in microseconds
#commit_siblings = 5 # range 30s-1d
max_wal_size = 1GB
min_wal_size = 80MB
#checkpoint_completion_target = 0.5 # checkpoint target duration, 0.0 - 1.0
#checkpoint_flush_after = 256kB # 0 disablesn pages, 0 disables
#checkpoint_warning = 30s # enables archiving; off, on, or always
# - Archiving - # (change requires restart)
#archive_command = '' # command to use to archive a logfile segment
#archive_mode = off # %f = file name onlyo archive
# force a logfile segment switch after this && cp %p /mnt/server/archivedir/%f'
#archive_timeout = 0 # command to use to restore an archived logfile segment
# placeholders: %p = path of file to restore
# - Archive Recovery - # %f = file name only
# e.g. 'cp /mnt/server/archivedir/%f %p'
# These are only used in recover# (change requires restart)
#archive_cleanup_command = '' # command to execute at every restartpoint
#recovery_end_command = '' # 'immediate' to end recovery as soon as avery
# consistent state is reached
# - Recovery Target - # (change requires restart)
#recovery_target_name = '' # the named restore point to which recovery will proceed
# Set these only when performing# (change requires restart)
#recovery_target_time = '' # the time stamp up to which recovery will proceed
#recovery_target = '' # the transaction ID up to which recovery will proceed
#recovery_target_xid = '' # the WAL LSN up to which recovery will proceed
#recovery_target_lsn = '' # just after the specified recovery target (on)
#recovery_target_inclusive = on # just before the recovery target (off)
# (chang# 'current', 'latest', or timeline ID
#recovery_target_timeline = 'lat# (chang# 'pause', 'promote', 'shutdown'
#recovery_target_action = 'pause# max number of walsender processes
# (change requires restart)
#wal_keep_segments = 0 # in logfile segments; 0 disables
#wal_sender_timeout = 60s-------# in milliseconds; 0 disables------------------
# REPLICATION
#max_replication_slots = 10-----# max number of replication slots--------------
# (change requires restart)
#track_commit_timestamp = off # collect timestamp of transaction commit
# (change requires restart)
# Set these on the master and on any standby that will send replication data.
# - Master Server -
#max_wal_senders = 10 # standby servers that provide sync rep
# These settings are ignored on # method to choose sync standbys, number of sync standbys,
# and comma-separated list of application_name
#synchronous_standby_names = '' # number of xacts by which cleanup is delayed
#vacuum_defer_cleanup_age = 0 # connection string to sending server
# - Standby Servers - # (change requires restart)
#primary_slot_name = '' # replication slot on sending server
# These settings are ignored on a master# (change requires restart)
#promote_trigger_file = '' # file name whose presence ends recovery
#hot_standby = on = '' # (change requires restart)uring recovery
#max_standby_archive_delay = 30s # when reading WAL from archive;ries
# max delay before canceling queries
#max_standby_streaming_delay = 30s # -1 allows indefinite delay;
#wal_receiver_status_interval = 10s # 0 disableses at least this often
#hot_standby_feedback = off # query conflictsstandby to prevent
#wal_receiver_timeout = 60s # communication from masterfor
# time to wait before retrying to
#wal_retrieve_retry_interval = 5s # minimum delay for applying changes during recovery
#recovery_min_apply_delay = 0 # taken from max_worker_processes
# - Subscribers - # (change requires restart)
#max_sync_workers_per_subscription = 2 # taken from max_logical_replication_workers
# These settings are ignored on a publisher.

#---------------------------------------# measured on an arbitrary scale-------
#random_page_cost = 4.0 # same scale as above
#cpu_tuple_cost = 0.01------------------# same scale as above------------------
#cpu_index_tuple_cost = 0.005 # same scale as above
#cpu_operator_cost = 0.0025ation - # same scale as above
#parallel_tuple_cost = 0.1 # same scale as above
#parallel_setup_cost = 1000.0 # same scale as above
#enable_hashagg = on
#jit_above_cost = 100000 # perform JIT compilation if available
#enable_indexscan = on # and query more expensive than this;
#enable_indexonlyscan = on # -1 disables
#jit_inline_above_cost = 500000 # inline small functions if query is
#enable_mergejoin = on # more expensive than this; -1 disables
#jit_optimize_above_cost = 500000 # use expensive JIT optimizations if
#enable_parallel_append = on # query is more expensive than this;
#enable_seqscan = on # -1 disables
#enable_sort = on
#min_parallel_table_scan_size = 8MB
#min_parallel_index_scan_size = 512kB
#effective_cache_size = 4GBgate = off
#enable_parallel_hash = on
# - Genetic Query Optimizer -n

#geqo = onr Cost Constants -
#geqo_threshold = 12
#geqo_effort = 5 1.0 # selects default based on effort
#geqo_generations = 0 # range 1.5-2.0lt based on effort
#geqo_seed = 0.0bias = 2.0 # range 0.0-1.0

# - Other Planner Options - # range 1-10000
#constraint_exclusion = partition # on, off, or partition
#cursor_tuple_fraction = 0.1 100 # 1 disables collapsing of explicit
#from_collapse_limit = 8 # JOIN clauses
#force_parallel_mode = off # allow JIT compilation
#plan_cache_mode = auto # force_custom_planic_plan or
# Valid values are combinations of
# stderr, csvlog, syslog, and eventlog,
#---------------------------------------# depending on platform. csvlog-------
# REPORTING AND LOGGING # requires logging_collector to be on.
#------------------------------------------------------------------------------
# This is used when logging to stderr:
#logging_collector = off # Enable capturing of stderr and csvlog
# into log files. Required to be on for
#log_destination = 'stderr' # (change requires restart)
# directory where log files are written,
# These are only used if logging_collect# can be absolute or relative to PGDATA
#log_filename = 'postgresql-%Y-%m-%d_%H%# can include strftime() escapespattern,
#log_file_mode = 0600 # begin with 0 to use octal notation
#log_truncate_on_rotation = off # same name as the new log file will be
# But such truncation only occurs on
# or size-driven rotation. Default iss
# in all cases.append to existing files
#log_rotation_age = 1d # happen after that time. 0 disables.
#log_rotation_size = 10MB # happen after that much log output.l
# values in order of decreasing detail:
# debug5
# These are relevant when logging to sys# debug4
#syslog_facility = 'LOCAL0' # debug3
#syslog_ident = 'postgres' # debug2
#syslog_sequence_numbers = on # debug1
#syslog_split_messages = on # info
# notice
# This is only relevant when logging to # warningin32):
# (change requires restart) # error
#event_source = 'PostgreSQL' # log
# fatal
# - When to Log - # panic

#log_min_error_statement = error # debug5n order of decreasing detail:
# debug3
# debug1
# notice
# errorng
# fatal
# -1 is disabled, 0 logs all statements
# and their durations, > 0 logs only
#log_min_duration_statement = -1 # of millisecondsing at least this number
# Fraction of transactions whose statements
#log_transaction_sample_rate = 0.0 # statements from all transactions, 0.0 never logs. all
# terse, default, or verbose messages
#log_hostname = off
#log_line_prefix = '%m [%p] ' # special values:
#debug_print_parse = off # %a = application name
#debug_print_rewritten = off # %u = user name
#debug_print_plan = off # %d = database name
#debug_pretty_print = on # %r = remote host and port
#log_checkpoints = off # %h = remote host
#log_connections = off # %p = process ID
#log_disconnections = off # %t = timestamp without milliseconds
#log_duration = off # %m = timestamp with milliseconds
#log_error_verbosity = default # %i = command tagith milliseconds (as a Unix epoch)
# %c = session ID
# %s = session start timestamp
# %x = transaction ID (0 if none)
# processes in non-session
# e.g. '<%u%%%d> '
#log_lock_waits = off # none, ddl, mod, alleadlock_timeout
#log_replication_commands = off # log temporary files equal or larger
#log_temp_files = -1 # -1 disables, 0 logs all temp fileses;
log_timezone = 'UTC' # added to process titles if nonempty
# (change requires restart)
#update_process_title = on-----------------------------------------------------
# PROCESS TITLE
#------------------------------------------------------------------------------
#------------------------------------------------------------------------------
# STATISTICSe = '' # none, pl, all
#track_activity_query_size = 1024-------# (change requires restart)------------
#stats_temp_directory = 'pg_stat_tmp'
# - Query and Index Statistics Collector -

# - Monitoring -s = on
#track_counts = on
#log_parser_stats = off
#log_planner_stats = off # Enable autovacuum subprocess? 'on'
#log_executor_stats = off # requires track_counts to also be on.
#log_autovacuum_min_duration = -1 # -1 disables, 0 logs all actions and
# their durations, > 0 logs only
# actions running at least this number
#---------------------------------------# of milliseconds.---------------------
#autovacuum_max_workers = 3 # max number of autovacuum subprocesses
#---------------------------------------# (change requires restart)------------
#autovacuum_naptime = 1min # time between autovacuum runs
#autovacuum_vacuum_threshold = 50 # vacuummber of row updates before
#autovacuum_analyze_threshold = 50 # analyzeber of row updates before
#autovacuum_vacuum_scale_factor = 0.2 # fraction of table size before analyze
#autovacuum_freeze_max_age = 200000000 # (change requires restart)rced vacuum
#autovacuum_multixact_freeze_max_age = 4# before forced vacuummum multixact age
# default vacuum cost delay for
#autovacuum_vacuum_cost_delay = 2ms # -1 means use vacuum_cost_delay
#autovacuum_vacuum_cost_limit = -1 # autovacuum, -1 means uset for
# values in order of decreasing detail:
# debug5
# debug4
#---------------------------------------# debug3-----------------------------
# CLIENT CONNECTION DEFAULTS # debug2
#---------------------------------------# debug1-----------------------------
# log
# - Statement Behavior - # notice
# warning
#client_min_messages = notice # schema names
#row_security = onuser", public' # a tablespace name, '' uses the default
#temp_tablespaces = '''' # only default tablespacemes, '' uses
#default_table_access_method = 'heap' # in milliseconds, 0 is disabled
#lock_timeout = 0odies = on # in milliseconds, 0 is disabled
#idle_in_transaction_session_timeout = 0ommitted# in milliseconds, 0 is disabled
#vacuum_freeze_min_age = 50000000off
#vacuum_freeze_table_age = 150000000f
#vacuum_multixact_freeze_min_age = 5000000
#vacuum_multixact_freeze_table_age = 150000000 # fraction of total number of tuples
#vacuum_cleanup_index_scale_factor = 0.1 # index cleanupcleanup, 0 always performs
#bytea_output = 'hex' # abbreviations. Currently, there are
#xmlbinary = 'base64' # Default
#xmloption = 'content' # Australia (historical usage)
#gin_fuzzy_search_limit = 0 # India
#gin_pending_list_limit = 4MB # You can create your own file in
# share/timezonesets/.
#extra_float_digits = 1ng - # min -15, max 3; any value >0 actually
# selects precise output mode
#client_encoding = sql_ascii # actually, defaults to database
#intervalstyle = 'postgres' # encoding
timezone = 'UTC'
# These settings are initialized by initdb, but they can be changed.e time zone
lc_messages = 'en_US.utf8' # strings locale for system error message
lc_monetary = 'en_US.utf8' # locale for number formattingng
lc_time = 'en_US.utf8'f8' # (change requires restart)r time formatting
#local_preload_libraries = ''
#session_preload_libraries = ''t search
#jit_provider = 'llvmjit'g = 'pg_catalog# JIT library to use

# - Other Defaults -reloading -

#dynamic_library_path = '$libdir' # min 10
# (change requires restart)
#max_pred_locks_per_transaction = 64 # min 10
#---------------------------------------# (change requires restart)------------
#max_pred_locks_per_relation = -2 # negative values mean
#---------------------------------------# (max_pred_locks_per_transaction------
# / -max_pred_locks_per_relation) - 1
#max_pred_locks_per_page = 2 # min 0
#max_locks_per_transaction = 64 # on, off, or safe_encoding
#escape_string_warning = on
#lo_compat_privileges = off----------------------------------------------------
#operator_precedence_warning = offTY
#quote_all_identifiers = off---------------------------------------------------
#standard_conforming_strings = on
#synchronize_seqscans = onrsions -

# - Other Platforms and Clients -
#backslash_quote = safe_encoding # terminate session on any error?
#restart_after_crash = onoff # reinitialize after backend crash?
#data_sync_retry = off # retry or panic on failure to fsync
# data?
#---------------------------------------# (change requires restart)------------
# ERROR HANDLING
#------------------------------------------------------------------------------
#------------------------------------------------------------------------------
# CONFIG FILE INCLUDES # include files ending in '.conf' from
#---------------------------------------# a directory, e.g., 'conf.d'----------
#include_if_exists = '...' # include file only if it exists
#include = '...'allow settings to be loa# include file other than the
# default postgresql.conf. Note that these are directives, not variable
# assignments, so they can usefully be given more than once.
#------------------------------------------------------------------------------
# CUSTOMIZED OPTIONS
#------------------------------------------------------------------------------

# Add settings for extensions here

...
Рейтинг: 0 / 0
Docker+PostgreSQL+база
    #39968761
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Та же ошибка подключения, когда пускаю их докер без своих изменений:

docker run -it --rm -e POSTGRES_PASSWORD=postgres -p5401:5432 postgres:12.3-alpine
...
Рейтинг: 0 / 0
Docker+PostgreSQL+база
    #39968763
Guzya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Посмотрите сети у себя и на той машине

Код: sql
1.
docker network ls



Код: sql
1.
docker network inspect <id_bridge>



сравните выделяемые подсети.
...
Рейтинг: 0 / 0
Docker+PostgreSQL+база
    #39968764
Guzya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ваш docker образ в Docker Hub загружен, можно посмотреть?
...
Рейтинг: 0 / 0
Docker+PostgreSQL+база
    #39968767
Guzya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2. сделайте запуск контейнера из скрипта примерно с такой логикой

Код: sql
1.
2.
3.
4.
5.
6.
7.
# псевдокод (помесь бульдога с носорогом)

if docker volume ls | find "my_volume" goto RUN
   dcoker volume create my_volume

:RUN
docker run -it --rm -e POSTGRES_PASSWORD=postgres -p 5401:5432 -v my_volume:/var/lib/postgresql/data postgres:12.3-alpine
...
Рейтинг: 0 / 0
Docker+PostgreSQL+база
    #39968769
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Guzya
Ваш docker образ в Docker Hub загружен, можно посмотреть?


не, я не загружал, пока борюсь, но я могу выслать dockerfile+мой тестовый скрипт, собственно, все как здесь и обсуждалось
Или сам построенный докер могу выслать, кстати.

Так самое интересное, что даже постгрес докер ( https://hub.docker.com/_/postgres/) дает ту же ошибку на этой второй машине.
На w10 работает, а на w7 - стартует, но при попытке подключения к постгресу - ошибка, там присутствует код 10061
...
Рейтинг: 0 / 0
Docker+PostgreSQL+база
    #39968775
Guzya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Тогда проблема в самой тачке, а др. win7 есть.

Кстати вопрос, а чем проверяете подключение, т.е. чем пытаетесь цепляться к postgres?
...
Рейтинг: 0 / 0
Docker+PostgreSQL+база
    #39968777
Guzya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
И волшебная команда для сети win7

Код: sql
1.
netsh winsock reset 
...
Рейтинг: 0 / 0
Docker+PostgreSQL+база
    #39968780
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Guzya
Тогда проблема в самой тачке, а др. win7 есть.

Кстати вопрос, а чем проверяете подключение, т.е. чем пытаетесь цепляться к postgres?


EMS PostgreSQL Manager
pgAmdin v4

Судя по эксперименту - все то же, но ОС разные, значит что-то в ОС.
Но что?
Контейнер стартует, все ок, а подключение к постгресу внутри контейнера - 10061.
...
Рейтинг: 0 / 0
Docker+PostgreSQL+база
    #39968788
Guzya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Мне много раз помогала

Guzya
И волшебная команда для сети win7

Код: sql
1.
netsh winsock reset 

...
Рейтинг: 0 / 0
Docker+PostgreSQL+база
    #39968792
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Guzya
Мне много раз помогала

Guzya
И волшебная команда для сети win7

Код: sql
1.
netsh winsock reset 



Спасибо.

Сделал , рестартонул, запустил postgresql docker, та же фигня.
...
Рейтинг: 0 / 0
Docker+PostgreSQL+база
    #39968795
Guzya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А тут что?

Guzya
Посмотрите сети у себя и на той машине

Код: sql
1.
docker network ls



Код: sql
1.
docker network inspect <id_bridge>



сравните выделяемые подсети.
...
Рейтинг: 0 / 0
Docker+PostgreSQL+база
    #39968803
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Guzya
А тут что?

Guzya
Посмотрите сети у себя и на той машине

Код: sql
1.
docker network ls



Код: sql
1.
docker network inspect <id_bridge>



сравните выделяемые подсети.



На обеих по 3 подсети, отличаются только идами

NETWORK ID NAME DRIVER SCOPE
cc1a634026a0 bridge bridge local
f5415c867e0b host host local
1ae5183d0f5f none null local

По каждой подсети разница только в идентификаторах, остальное совпадает.
...
Рейтинг: 0 / 0
Docker+PostgreSQL+база
    #39968805
Guzya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я имел ввиду
Код: sql
1.
docker network inspect bridge



диапазоны подсетей одинаковые выдает?
...
Рейтинг: 0 / 0
Docker+PostgreSQL+база
    #39968815
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Guzya
Я имел ввиду
Код: sql
1.
docker network inspect bridge



диапазоны подсетей одинаковые выдает?



С обеих машин:

w7 (with problem):

[
{
"Name": "bridge",
"Id": "cc1a634026a01ebda1da0b51aabe742db79f834f49f1e2a21e8ccb79e0098f49",
"Created": "2020-06-13T10:26:30.525519953Z",
"Scope": "local",
"Driver": "bridge",
"EnableIPv6": false,
"IPAM": {
"Driver": "default",
"Options": null,
"Config": [
{
"Subnet": "172.17.0.0/16",
"Gateway": "172.17.0.1"
}
]
},
"Internal": false,
"Attachable": false,
"Ingress": false,
"ConfigFrom": {
"Network": ""
},
"ConfigOnly": false,
"Containers": {
"fba674a893f75c02c1c25460b910200894c0b1ce0f68a3234d86c12eaf851325": {
"Name": "pga",
"EndpointID": "cf3d10aa308db41ddb4c2515ab33152243c38319464f4a9a36cc3ffd5d44bef6",
"MacAddress": "02:42:ac:11:00:02",
"IPv4Address": "172.17.0.2/16",
"IPv6Address": ""
}
},
"Options": {
"com.docker.network.bridge.default_bridge": "true",
"com.docker.network.bridge.enable_icc": "true",
"com.docker.network.bridge.enable_ip_masquerade": "true",
"com.docker.network.bridge.host_binding_ipv4": "0.0.0.0",
"com.docker.network.bridge.name": "docker0",
"com.docker.network.driver.mtu": "1500"
},
"Labels": {}
}
]


w10 (OK)

[
{
"Name": "bridge",
"Id": "9ee8f50a56b689e3676a2e6cbedb1171288613418a88c382dd9d63b39385b023",
"Created": "2020-06-12T05:55:34.32879914Z",
"Scope": "local",
"Driver": "bridge",
"EnableIPv6": false,
"IPAM": {
"Driver": "default",
"Options": null,
"Config": [
{
"Subnet": "172.17.0.0/16",
"Gateway": "172.17.0.1"
}
]
},
"Internal": false,
"Attachable": false,
"Ingress": false,
"ConfigFrom": {
"Network": ""
},
"ConfigOnly": false,
"Containers": {
"bbb12ad8b766bb27761cd67bb34dcdadb18c86638e87994a6f2026165174562b": {
"Name": "pgpm2513",
"EndpointID": "4420fb0be31a7146a71d66964731954a169d8a8cb9f4110f305241be5d252deb",
"MacAddress": "02:42:ac:11:00:02",
"IPv4Address": "172.17.0.2/16",
"IPv6Address": ""
}
},
"Options": {
"com.docker.network.bridge.default_bridge": "true",
"com.docker.network.bridge.enable_icc": "true",
"com.docker.network.bridge.enable_ip_masquerade": "true",
"com.docker.network.bridge.host_binding_ipv4": "0.0.0.0",
"com.docker.network.bridge.name": "docker0",
"com.docker.network.driver.mtu": "1500"
},
"Labels": {}
}
]

...
Рейтинг: 0 / 0
Docker+PostgreSQL+база
    #39968820
Guzya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Попробуйте в pg_hba добавить разрешение на подсеть

Код: sql
1.
host all all 172.17.0.1/24 trust
...
Рейтинг: 0 / 0
Docker+PostgreSQL+база
    #39968835
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Guzya
Попробуйте в pg_hba добавить разрешение на подсеть

Код: sql
1.
host all all 172.17.0.1/24 trust



Как добавить строку в pg_hba.conf во время построения, как в моем случае:

Dockerfile:

FROM postgres:12.3-alpine
COPY 01str.sql /docker-entrypoint-initdb.d/
COPY 02data.sql /docker-entrypoint-initdb.d/

----------------
Чтобы потом не исправлять вручную каждый раз
...
Рейтинг: 0 / 0
Docker+PostgreSQL+база
    #39968839
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ролг Хупин
Guzya
Попробуйте в pg_hba добавить разрешение на подсеть

Код: sql
1.
host all all 172.17.0.1/24 trust



Как добавить строку в pg_hba.conf во время построения, как в моем случае:

Dockerfile:

FROM postgres:12.3-alpine
COPY 01str.sql /docker-entrypoint-initdb.d/
COPY 02data.sql /docker-entrypoint-initdb.d/

----------------
Чтобы потом не исправлять вручную каждый раз


Добавил, та же фигня, ошибка коннекта.
Есть в запуске в Win7 и в Win 10....
...
Рейтинг: 0 / 0
Docker+PostgreSQL+база
    #39968982
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ролг Хупин,

Хочу заметить что вообще вопрос в принципе не про postgresql и должен задаваться в форумах по докеру.

ps: база в докере - идея дурная с любой точки зрения. даже база на виртуалке (если это production конечно) - идея дурная.
...
Рейтинг: 0 / 0
60 сообщений из 60, показаны все 3 страниц
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Docker+PostgreSQL+база
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]