Невозможно выполнить команду psql внутри контейнера postgres docker - PullRequest
0 голосов
/ 15 марта 2020

Я недавно начал использовать Docker. Однако, хотя я смог запустить контейнер postgres и запустить команду bash "psql" внутри него. Теперь я сталкиваюсь с ошибкой, пытаясь сделать то же самое через некоторое время. Вот что сработало у меня некоторое время назад, и теперь оно больше не работает:

docker run --rm -it postgres bash

Команда выше открывает bash внутри контейнера postgres. Когда я набираю psql внутри этого контейнера, он показывает ошибку:

root@3615146cf679: / # psql

psql: ошибка: не удалось подключиться к серверу: не удалось подключиться к серверу: нет такого файла или каталога. Является ли сервер запущенным локально и принимающим подключения к Unix доменному сокету «/var/run/postgresql/.s.PGSQL.5432управления?

Ответы [ 2 ]

1 голос
/ 15 марта 2020

Вам необходимо использовать эти команды по порядку: запустите контейнер с:

$ sudo docker run --name some-postgres -e POSTGRES_PASSWORD=mysecretpassword -d postgres

введите контейнер с:

$ sudo docker exec -it some-postgres /bin/bash

при вводе контейнера запустите:

$ psql -U postgres
0 голосов
/ 16 марта 2020
I myself figured it out that using "bash" at the time of starting the container was causing the problem. Once we run it using:

docker run --rm postgres
Above command says that we need to provide a Password or Auth Method. Hence, we do so.
Anyone of below 3 commands can start a postgres container:

docker run --rm -e POSTGRES_PASSWORD=postgres postgres
or
docker run --rm -e POSTGRES_HOST_AUTH_METHOD=trust postgres
or
docker run --rm -e POSTGRES_HOST_AUTH_METHOD=trust -e POSTGRES_USER=postgres -e 
POSTGRES_PASSWORD=postgres postgres

Then, we can execute:

docker exec -it <container_id> bash
psql -U postgres
CREATE TABLE tutorials (id int, tutorial_name text);
INSERT INTO tutorials VALUES (1, 'C++');
select * from tutorials;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...