Попытка контейнера phppgadmin docker для просмотра базы данных postgres на хосте: он говорит, что вход не выполнен - PullRequest
1 голос
/ 27 апреля 2020

Я хочу просмотреть хост postgresql с помощью phppgadmin docker Контейнер

Мой хост - это arch linux, и на нем запущен postgresql сервер.

У меня есть / var / lib / postgres / data / postgresql .conf

listen_addresses = "*"

и

/ var / lib / postgres / data / pg_hba.conf

host    all             all             172.17.0.0/16           password

Я хочу просмотреть таблицы postgresql. Поэтому я использую phppgadmin docker с помощью следующей команды

docker run --name='phppgadmin' --rm \
                --publish=8888:80 \
                -e PHP_PG_ADMIN_SERVER_HOST="127.0.0.1" \
                dockage/phppgadmin:latest

Теперь я могу открыть phppgadmin из 127.0.0.1:8888/phppgadmin

Но когда я пытаюсь войти, он говорит: login failed

У меня на хосте есть проект django, использующий хосты postgresql. Это хорошо работает с настройками

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'NAME': ‘<db_name>’,
        'USER': '<db_username>',
        'PASSWORD': '<password>',
        'HOST': '127.0.0.1',
        'PORT': '5432',
    }

}

Также мой вывод netstat на хосте

$ netstat -nrv                                         
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
0.0.0.0         192.168.1.1     0.0.0.0         UG        0 0          0 wlp3s0
172.17.0.0      0.0.0.0         255.255.0.0     U         0 0          0 docker0
172.18.0.0      0.0.0.0         255.255.0.0     U         0 0          0 br-1c7e732767f4
172.20.0.0      0.0.0.0         255.255.0.0     U         0 0          0 br-17604ffc4858
192.168.1.0     0.0.0.0         255.255.255.0   U         0 0          0 wlp3s0

на моем docker контейнере

$ netstat -nrv
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
0.0.0.0         172.17.0.1      0.0.0.0         UG        0 0          0 eth0
172.17.0.0      0.0.0.0         255.255.0.0     U         0 0          0 eth0

1 Ответ

0 голосов
/ 27 апреля 2020

С netstat -nrv на моем phppgadmin docker контейнер

$ netstat -nrv
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
0.0.0.0         172.17.0.1      0.0.0.0         UG        0 0          0 eth0
172.17.0.0      0.0.0.0         255.255.0.0     U         0 0          0 eth0

Таким образом, IP-адрес хоста равен 172.17.0.1

Изменить PHP_PG_ADMIN_SERVER_HOST="127.0.0.1" на PHP_PG_ADMIN_SERVER_HOST="172.17.0.1"

docker run --name='phppgadmin' --rm \
                --publish=8888:80 \
                -e PHP_PG_ADMIN_SERVER_HOST="172.17.0.1" \
                dockage/phppgadmin:latest

с:

У меня есть /var/lib/postgres/data/postgresql.conf

listen_addresses = "localhost,127.0.0.1,172.17.0.1"

и

/ var / lib / postgres / data / pg_hba.conf

host    all             all             172.17.0.0/16           md5

Открыть 127.0.0.1:8888/phppgadmin и войти в систему, не используя Superuser

Для Superuser он все еще не работает.

...