无法使用psql连接到dockerized postgres

时间:2018-10-20 23:55:56

标签: postgresql docker

我在连接到dockerized postgres时遇到问题

这是容器:

root@29de79c3cfa2:/# psql -U postgres -W
Password for user postgres: 
psql (9.5.14)
Type "help" for help.

postgres=# 

从Mac终端:

psql --host localhos -p 5234 -U postgres -W
Password for user postgres: 
psql: FATAL:  role "postgres" does not exist

$ docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
29de79c3cfa2        postgres:9.5        "docker-entrypoint.s…"   14 minutes ago      Up 7 minutes        0.0.0.0:5234->5432/tcp   postgres_1

似乎端口匹配(我确实在5234上获得了连接),但是由于某种原因,它无法识别角色?如果在容器中允许我以该角色连接,怎么可能?

1 个答案:

答案 0 :(得分:0)

以我为例。这就是我所做的

  1. 运行postgres docker映像

    [root @ yellowdog]#docker run -d --name postgres -p 5432:5432 -e POSTGRES_PASSWORD = postgres postgres:9.5 5bf259c6d3f8be43aa3dc2aed4496a4992a8d1ba5b999507652fd13fcc109c25

  2. 从另一个postgresql容器中测试docker容器中的postgres工作

    [root @ yellowdog]#docker run -it --rm --link postgres:postgres postgres psql -h postgres -U postgres

    用户postgres的密码:

    psql(11.0(Debian 11.0-1.pgdg90 + 2),服务器9.5.14)

    键入“帮助”以获取帮助。

    postgres =#选择1;

    ?列?

        1
    

    (1行)

    postgres =#\ q

  3. 最后在主机上测试工作

    [root @ yellowdog]#psql -h localhost -U postgres

    用户postgres的密码:

    psql(10.4,服务器9.5.14)

    键入“帮助”以获取帮助。

    postgres =#选择1;

    ?列?

        1
    

    (1行)

    postgres =#\ q