Подключение к докеризированным postgres с хоста Windows Docker - PullRequest
0 голосов
/ 11 июля 2019

моя установка - Docker для Windows (версия 18.09.2) на компьютере с Windows 10 Pro с установленным postgres (не база данных, только инструменты командной строки).

Я запускаю официальный образ postgres из докера с помощью

docker run -it -v D:/postgres:/home/dump --name some_postgres -e POSTGRES_PASSWORD=root -d postgres

После этого я могу подключиться через

docker exec -it <docker-id> bash

и запустить

psql -U postgres

Все отлично работает. Теперь я хочу подключиться с моего хоста. Я звоню

psql -h <local-ip> -U postgres

и получил

psql: could not connect to server: Connection refused (0x0000274D/10061)
        Is the server running on host "192.168.116.74" and accepting
        TCP/IP connections on port 5432?

Я почти уверен, что к базе данных можно получить доступ. Потому что, если я изменю IP, я получу

psql: could not connect to server: Connection timed out (0x0000274C/10060)
        Is the server running on host "192.168.116.11" and accepting
        TCP/IP connections on port 5432?

Кто-нибудь знает, как я могу решить эту проблему? Или что я делаю не так?

1 Ответ

0 голосов
/ 11 июля 2019

Чтобы подключиться к контейнеру с вашего хоста, вы должны опубликовать порты на вашем хосте. Это делается с помощью публикации портов и опции -p:

docker run -it -v D:/postgres:/home/dump --name some_postgres -p 5432:5432 -e POSTGRES_PASSWORD=root -d postgres

Обратите внимание на параметр -p. Теперь, когда вы будете пытаться подключиться к порту 5432 на локальном хосте, трафик будет перенаправлен на порт 5432 контейнера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...