当前位置: 首页 > 知识库问答 >
问题:

连接客户端docker和主机上的postgres服务器[重复]

景令秋
2023-03-14

我的主机上有一个postgres服务器,我想制作一个连接到这个postgres服务器的docker容器。

所以我想我需要将连接IP:5432上的postgres服务器公开给Docker。在docker上公开5432并在docker内部指定正确的连接信息,如下所示:

SQLALCHEMY_DATABASE_URI = "postgresql+psycopg2://username:password@IP/db_name"

主机docker IP为:

docker0   Link encap:Ethernet  HWaddr 02:42:b3:d9:eb:e2  
          inet addr:172.17.0.1  Bcast:172.17.255.255  Mask:255.255.0.0
          inet6 addr: fe80::42:b3ff:fed9:ebe2/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:213512 errors:0 dropped:0 overruns:0 frame:0
          TX packets:351284 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:9157933 (9.1 MB)  TX bytes:826914241 (826.9 MB)

docker_gwbridge Link encap:Ethernet  HWaddr 02:42:5c:b9:3b:0a  
          inet addr:172.18.0.1  Bcast:172.18.255.255  Mask:255.255.0.0
          inet6 addr: fe80::42:5cff:feb9:3b0a/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:436 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:0 (0.0 B)  TX bytes:64397 (64.3 KB)

我缺少什么,以及我如何将postgres服务器公开给主机端的相关端口。

共有1个答案

熊嘉茂
2023-03-14

也许您可以考虑为您的容器使用网络模式:主机。

这意味着container并没有真正与您的主机网络隔离,可以使用localhost:5432连接到您的数据库。

 类似资料:
  • 我有一个示例Spring启动应用程序来运行图形QL服务器,具有作为客户端,我的pom有以下依赖项: 当我尝试从客户端连接时,出现以下错误: 狩猎决议好心建议。 我还有几个问题: 我应该使用SimpleGraphQLHttpServlet将请求路由到endpoint吗 我正在React UI上使用apollo client,那么它是强制使用apollo server还是spring boot可以工作

  • 编辑2:我切换到,并用包装客户端工厂,这样设备就可以很好地到达后端。但是当后端发回一些东西时,我会得到错误的出站套接字,客户机套接字死亡。我认为这是因为后端没有正确路由消息所必需的头。如何捕获此信息?我的配置类如下:

  • 问题内容: 我有一个RMI服务器和一个桌面RMI客户端。重新启动服务器时,客户端出现错误。是否可以在不重新启动客户端的情况下重新启动RMI连接? [编辑]这是堆栈跟踪: 问题答案: 服务器终止后,您将收到一个ConnectException。之后,您可以使用Naming.lookup获取新的服务器对象。

  • 客户端应用程序在以下代码处挂起:

  • 有两个相关的问题,但他们没有完全回答问题。但如果国防部认为这是复制品,请告诉我。 编辑:我在Linux上使用docker,并且非常希望不在主机模式下运行容器。

  • 我使用的代码女巫只允许4个不同端口上的4个连接。此代码正在工作,但当客户端关闭连接时,它无法重新建立连接。连接被拒绝。认为是因为线程关闭。如何解决这个问题?我无法更改端口号... 从套接字导入* BUFF=25 def服务器(主机、端口): 如果名称==“main”:导入线程