无法从Docker连接到postgres

问题描述 投票:0回答:1

我有一个docker镜像,其中有一个由一个主设备和两个从设备组成的hadoop集群。在此群集上,我有HBase。我正在尝试使用scoop将安装在本地计算机上的postgres数据库迁移到Docker映像上的HBase数据库。

对于Postgres,这是我的postgresql.conf配置文件:

------------------------------------------------ ------------------------------

连接和认证

------------------------------------------------ ------------------------------

-连接设置-

listen_addresses =''#要监听的IP地址;#以逗号分隔的地址列表;#默认为'localhost';全部使用''#(更改需要重新启动)端口= 5432#(更改需要重新启动)max_connections = 100#(更改需要重新启动)

superuser_reserved_connections = 3#(更改需要重新启动)unix_socket_directories ='/ var / run / postgresql'#逗号分隔的列表

的目录#(更改需要重新启动)

unix_socket_group =''#(更改需要重新启动)

unix_socket_permissions = 0777#以0开头以使用八进制表示法

                                    # (change requires restart)

bonjour = off#通过Bonjour播发服务器

                                    # (change requires restart)

bonjour_name =''#默认为计算机名称

-安全和身份验证-

authentication_timeout = 1min#1s-600s ssl = on

ssl_ciphers ='HIGH:MEDIUM:+ 3DES:!aNULL'#允许使用SSL密码

ssl_prefer_server_ciphers =开启

ssl_ecdh_curve ='prime256v1'

ssl_dh_params_file =''ssl_cert_file ='/etc/ssl/certs/ssl-cert-snakeoil.pem'ssl_key_file =

'/ etc / ssl / private / ssl-cert-snakeoil.key'

ssl_ca_file =''

ssl_crl_file =''

password_encryption = md5#md5或scram-sha-256

db_user_namespace = off

row_security =开

使用Kerberos的GSSAPI

krb_server_keyfile =''

krb_caseins_users =关闭

-TCP Keepalive-

有关详细信息,请参见“ man 7 tcp”

tcp_keepalives_idle = 0#TCP_KEEPIDLE,以秒为单位;

                                    # 0 selects the system default

tcp_keepalives_interval = 0#TCP_KEEPINTVL,以秒为单位;

                                    # 0 selects the system default

tcp_keepalives_count = 0#TCP_KEEPCNT;

                                    # 0 selects the system default

也是这是pg_hba.conf文件的内容:

通过Unix域套接字本地所有postgres对等体进行数据库管理登录

类型数据库用户地址方法

“ local”仅用于Unix域套接字连接,所有本地都信任

IPv4本地连接:托管所有所有127.0.0.1/32信任

IPv6本地连接:托管所有所有:: 1/128信任

允许具有以下权限的用户从本地主机进行复制连接:>

复制特权。

本地复制全部信任

主机复制全部127.0.0.1/32信任主机复制全部:: 1/128

我的问题是,当我尝试使用此命令使用独家新闻从Docker映像连接到Postgres时:

sqoop import --connect jdbc:postgresql://localhost:5432/mimic --username postgres --password 0000 --table admission_ids --hbase-table mimic --column-family admission_ids --hbase-row-key id -m 1

我只是有这个问题:

检查主机名和端口是否正确以及邮局主管正在接受TCP / IP连接。 org.postgresql.util.PSQLException:拒绝连接。检查主机名和端口是否正确,以及邮件管理员正在接受TCP / IP连接。搜索后,我了解到docker是此问题的根源,并确认这一点,我只是第一次尝试使用本地计算机上的tenlnet连接到postgres,这是结果:

telnet localhost 5432
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.

第二次从docker:

telnet localhost 5432
Trying 127.0.0.1...
Trying ::1...
telnet: Unable to connect to remote host: Cannot assign requested address

我的Docker映像名为spark-hadoop。我试图截断该命令,但始终不起作用:

docker run -d --name bridgeToHadoop --publish=127.0.0.1:5432:5432 -p 172.18.0.2:5432:5432 spark-hadoop

任何人都能帮忙吗?>

我有一个docker镜像,其中有一个由一个主设备和两个从设备组成的hadoop集群。在此群集上,我有HBase。我正在尝试迁移安装在本地...上的postgres数据库...

postgresql docker hadoop hbase
1个回答
0
投票

Postgresql在主机上运行,​​您正尝试从Docker容器连接它。执行此操作时,主机不应在连接字符串中为localhost。本地主机是指Docker容器。

用IP地址替换本地主机,应该紧随其后

© www.soinside.com 2019 - 2024. All rights reserved.