Linux DBeaver/PostgresSQL无法连接到远程docker容器

Linux DBeaver/PostgresSQL无法连接到远程docker容器,linux,database,postgresql,docker,jdbc,Linux,Database,Postgresql,Docker,Jdbc,我试图通过DBeaver访问postgresql docker容器,但我不知道如何使其工作 运行docker端口db_1返回: 5432/tcp -> 0.0.0.0:5432 因此,端口应该对连接开放 postgresql.conf设置为 listen_addresses = '*' 运行docker inspect--format'{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}'db_1返回 172.19.0.2 当

我试图通过DBeaver访问postgresql docker容器,但我不知道如何使其工作

运行
docker端口db_1
返回:

5432/tcp -> 0.0.0.0:5432
因此,端口应该对连接开放

postgresql.conf
设置为

listen_addresses = '*'
运行
docker inspect--format'{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}'db_1
返回

172.19.0.2
当尝试将数据库连接到
localhost
/
127.0.0.1
/
172.19.0.2
/
db_1
时,Dbeaver日志将返回以下内容:

2019-03-18 17:22:03.000 - Connect with 'jdbc:postgresql://db_1:5432/test' (postgres-jdbc-169919c23d5-77ac021a71307fee)
....
2019-03-18 17:22:14.815 - SSH INFO: SSH_MSG_SERVICE_ACCEPT received
2019-03-18 17:22:14.824 - SSH INFO: Authentications that can continue: password,keyboard-interactive
2019-03-18 17:22:14.825 - SSH INFO: Next authentication method: password
2019-03-18 17:22:18.432 - SSH INFO: Authentication succeeded (password).
2019-03-18 17:22:18.458 - Connection failed (postgres-jdbc-169919c23d5-77ac021a71307fee)
2019-03-18 17:22:18.459 - SSH INFO: Disconnecting from domain.com port 22
2019-03-18 17:22:18.461 - SSH INFO: Caught an exception, leaving main loop due to Socket closed
2019-03-18 17:22:18.514 - org.jkiss.dbeaver.model.exec.DBCConnectException: The connection attempt failed.
org.jkiss.dbeaver.model.exec.DBCConnectException: The connection attempt failed.
    at org.jkiss.dbeaver.model.impl.jdbc.JDBCDataSource.openConnection(JDBCDataSource.java:179)
    at org.jkiss.dbeaver.ext.postgresql.model.PostgreDataSource.openConnection(PostgreDataSource.java:363)
    at org.jkiss.dbeaver.ext.postgresql.model.PostgreDataSource.initializeRemoteInstance(PostgreDataSource.java:122)
    at org.jkiss.dbeaver.model.impl.jdbc.JDBCDataSource.<init>(JDBCDataSource.java:100)
    at org.jkiss.dbeaver.model.impl.jdbc.JDBCDataSource.<init>(JDBCDataSource.java:89)
    at org.jkiss.dbeaver.ext.postgresql.model.PostgreDataSource.<init>(PostgreDataSource.java:80)
    at org.jkiss.dbeaver.ext.postgresql.PostgreDataSourceProvider.openDataSource(PostgreDataSourceProvider.java:97)
    at org.jkiss.dbeaver.registry.DataSourceDescriptor.connect(DataSourceDescriptor.java:770)
    at org.jkiss.dbeaver.runtime.jobs.ConnectJob.run(ConnectJob.java:70)
    at org.jkiss.dbeaver.ui.dialogs.connection.ConnectionWizard$ConnectionTester.run(ConnectionWizard.java:232)
    at org.jkiss.dbeaver.model.runtime.AbstractJob.run(AbstractJob.java:101)
    at org.eclipse.core.internal.jobs.Worker.run(Worker.java:63)
Caused by: org.postgresql.util.PSQLException: The connection attempt failed.
    at org.postgresql.Driver$ConnectThread.getResult(Driver.java:405)
    at org.postgresql.Driver.connect(Driver.java:263)
    at org.jkiss.dbeaver.model.impl.jdbc.JDBCDataSource.lambda$0(JDBCDataSource.java:148)
    at org.jkiss.dbeaver.model.impl.jdbc.JDBCDataSource.openConnection(JDBCDataSource.java:157)
    ... 11 more
Caused by: java.net.SocketException: Connection reset
    at java.net.SocketInputStream.read(SocketInputStream.java:210)
    at java.net.SocketInputStream.read(SocketInputStream.java:141)
    at org.postgresql.core.VisibleBufferedInputStream.readMore(VisibleBufferedInputStream.java:140)
    at org.postgresql.core.VisibleBufferedInputStream.ensureBytes(VisibleBufferedInputStream.java:109)
    at org.postgresql.core.VisibleBufferedInputStream.read(VisibleBufferedInputStream.java:67)
    at org.postgresql.core.PGStream.receiveChar(PGStream.java:306)
    at org.postgresql.core.v3.ConnectionFactoryImpl.enableSSL(ConnectionFactoryImpl.java:405)
    at org.postgresql.core.v3.ConnectionFactoryImpl.tryConnect(ConnectionFactoryImpl.java:94)
    at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:192)
    at org.postgresql.core.ConnectionFactory.openConnection(ConnectionFactory.java:49)
    at org.postgresql.jdbc.PgConnection.<init>(PgConnection.java:195)
    at org.postgresql.Driver.makeConnection(Driver.java:454)
    at org.postgresql.Driver.access$100(Driver.java:57)
    at org.postgresql.Driver$ConnectThread.run(Driver.java:364)
    at java.lang.Thread.run(Thread.java:748)
2019-03-1817:22:03.000-与“jdbc:p”连接ostgresql://db_1:5432/test(postgres-jdbc-169919c23d5-77AC021A71307费用)
....
2019-03-18 17:22:14.815-SSH信息:SSH\u消息\u服务\u接收
2019-03-18 17:22:14.824-SSH信息:可以继续的身份验证:密码、键盘交互
2019-03-18 17:22:14.825-SSH信息:下一个身份验证方法:密码
2019-03-18 17:22:18.432-SSH信息:身份验证成功(密码)。
2019-03-18 17:22:18.458-连接失败(postgres-jdbc-169919c23d5-77ac021a71307fee)
2019-03-18 17:22:18.459-SSH信息:从domain.com端口22断开连接
2019-03-18 17:22:18.461-SSH信息:捕获到异常,由于套接字关闭而离开主循环
2019-03-18 17:22:18.514-org.jkiss.dbeaver.model.exec.DBCConnectException:连接尝试失败。
org.jkiss.dbeaver.model.exec.DBCConnectException:连接尝试失败。
位于org.jkiss.dbeaver.model.impl.jdbc.JDBCDataSource.openConnection(JDBCDataSource.java:179)
位于org.jkiss.dbeaver.ext.postgresql.model.PostgreDataSource.openConnection(PostgreDataSource.java:363)
位于org.jkiss.dbeaver.ext.postgresql.model.PostgreDataSource.initializeRemoteInstance(PostgreDataSource.java:122)
位于org.jkiss.dbeaver.model.impl.jdbc.JDBCDataSource(JDBCDataSource.java:100)
位于org.jkiss.dbeaver.model.impl.jdbc.JDBCDataSource(JDBCDataSource.java:89)
位于org.jkiss.dbeaver.ext.postgresql.model.PostgreDataSource(PostgreDataSource.java:80)
位于org.jkiss.dbeaver.ext.postgresql.PostgreDataSourceProvider.openDataSource(PostgreDataSourceProvider.java:97)
位于org.jkiss.dbeaver.registry.DataSourceDescriptor.connect(DataSourceDescriptor.java:770)
位于org.jkiss.dbeaver.runtime.jobs.ConnectJob.run(ConnectJob.java:70)
位于org.jkiss.dbeaver.ui.dialogs.connection.ConnectionWizard$ConnectionTester.run(ConnectionWizard.java:232)
位于org.jkiss.dbeaver.model.runtime.AbstractJob.run(AbstractJob.java:101)
位于org.eclipse.core.internal.jobs.Worker.run(Worker.java:63)
原因:org.postgresql.util.PSQLException:连接尝试失败。
位于org.postgresql.Driver$ConnectThread.getResult(Driver.java:405)
位于org.postgresql.Driver.connect(Driver.java:263)
位于org.jkiss.dbeaver.model.impl.jdbc.JDBCDataSource.lambda$0(JDBCDataSource.java:148)
位于org.jkiss.dbeaver.model.impl.jdbc.JDBCDataSource.openConnection(JDBCDataSource.java:157)
... 还有11个
原因:java.net.SocketException:连接重置
位于java.net.SocketInputStream.read(SocketInputStream.java:210)
位于java.net.SocketInputStream.read(SocketInputStream.java:141)
位于org.postgresql.core.VisibleBufferedInputStream.readMore(VisibleBufferedInputStream.java:140)
位于org.postgresql.core.VisibleBufferedInputStream.ensureBytes(VisibleBufferedInputStream.java:109)
位于org.postgresql.core.VisibleBufferedInputStream.read(VisibleBufferedInputStream.java:67)
位于org.postgresql.core.PGStream.receiveChar(PGStream.java:306)
位于org.postgresql.core.v3.ConnectionFactoryImpl.enableSSL(ConnectionFactoryImpl.java:405)
位于org.postgresql.core.v3.ConnectionFactoryImpl.tryConnect(ConnectionFactoryImpl.java:94)
位于org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:192)
位于org.postgresql.core.ConnectionFactory.openConnection(ConnectionFactory.java:49)
位于org.postgresql.jdbc.PgConnection.(PgConnection.java:195)
位于org.postgresql.Driver.makeConnection(Driver.java:454)
访问org.postgresql.Driver.access$100(Driver.java:57)
位于org.postgresql.Driver$ConnectThread.run(Driver.java:364)
运行(Thread.java:748)
真的不知道如何使连接工作。SSH隧道显然可以工作,但与db的连接失败。我有一个spring启动应用程序运行在另一个容器中,并通过连接字符串
jdbc:p连接它ostgresql://db_1:5432/test
工作起来很有魅力


有什么意见吗?可能是
0.0.0.0
没有以某种方式映射到内部网络吗

db_1
只能从另一个容器中工作。127.0.0.1应该有效。您是否有pg_hba.conf阻止连接的规则?