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

无法访问在单独的docker容器中运行的postgres

章建木
2023-03-14

我有一个 docker 17.05.0-ce,在 ubuntu 服务器 16.04 LTS 上构建 89658be。我有一个Postgres在容器中运行并公开端口5432。

我可以从任何地方连接它,除了psql只是超时的同级容器。作为地址,我使用主机的IP。从客户端Ping有效,而psqlconnect无效。

我知道我可以用组合的Postgres服务创建一个docker-compose,但宁愿不这样做 - 我想让它们完全分开。

知道如何解决这个问题吗?

共有3个答案

支嘉祥
2023-03-14

将-c 'listen_addresses=* '传递给docker run命令行这将允许postgress接受来自远程机器的连接:

docker run --name postgres -p 5432:5432  -ePOSTGRES_DB=pgdb -e POSTGRES_USER=user -e POSTGRES_PASSWORD=pass -d postgres -c 'listen_addresses=*'
诸葛皓
2023-03-14

您需要使用--net=host

添加我得到的类似问题的答案:

为了快速解决问题,您可以运行所有带有标志--net=host的容器,这意味着docker容器将使用主机网络接口。可以在此处找到有关docker网络的更多信息。

淳于宏伯
2023-03-14

你必须把两个容器放在同一个docker网络上,这样它们才能互相交流。

< code > docker network create funny

然后启动容器连接到网络

docker运行database_container--net=funcy--name=database

docker运行app_container--net=有趣的--name=app

完成后,您可以通过在run命令中指定的名称连接到每个容器。

 类似资料:
  • 问题内容: 我已经创建了一个Docker映像来测试Angular应用程序,但是无法从主机连接到Docker容器中正在运行的应用程序。 该映像是使用具有以下内容的Dockerfile创建的:EXPOSE 4200 8080 80 我使用以下命令运行docker容器:docker run -ti -p 4200:4200 angulardev / bin / bash 在容器内,我创建Angular应

  • 我有一个Django应用程序的简单代码构建项目,我想在docker容器中启动一个Postgres数据库进行测试。 命令是: 在我的本地机器上,一切都工作得很好,但在AWS CodeBuild中,我收到了错误: psql:错误:无法连接到服务器:无法连接到服务器:没有这样的文件或目录服务器是否在本地运行并接受Unix域套接字"/var/run/postgresql/. s. PGSQL.5432"上

  • 我在Preferences中设置了Ant runtime属性- 我有一个身材。包含以下内容的xml 如果我选择“在与工作区相同的JRE中运行”,我会得到(1) 如果我选择“独立JRE”,我会得到(2) 因此,在后一种情况下,属性未正确解析。 我更喜欢(1)的行为,但在一个单独的JRE中运行,我在另一台机器上得到这种行为。所以我认为这是某种背景,我就是找不到。 有什么建议吗? Windows 7 月

  • 我可以对Docker API进行cUrl调用,但是如果我从容器(docker-comals)运行相同的脚本,我就无法到达任何API终结点。 我的请求如下: 原因可能是使用了localhost,但我现在还找不到解决方案。有什么建议吗? 编辑:下面是我正在使用的堆栈(Api平台)的简要摘要https://api-platform.com/).每个容器都连接到“api_默认”网桥网络: 基于php=Sy

  • 问题内容: 目前,我在需要连接到camunda的docker容器内运行一个node.js应用程序,该容器在另一个容器中运行。 我使用以下命令启动容器 这两个应用程序现在都在运行,我可以通过在端口8000上导航到主机的IP来访问camunda,运行wget 还会返回camunda页面。使用和键入我的应用程序容器时,我无法访问camunda。相反,我得到以下错误: 当我使用将我的应用程序容器链接到ca

  • 问题内容: 我使用docker-compose和以下配置部署了标准的Jenkins Docker映像: 在阅读了许多SO问题之后,我测试了将Root添加到docker用户组,并验证Container中的用户是Root with 。 当我尝试使用“ Docker URL = unix:///var/run/docker.sock”在Jenkins UI中添加Docker访问时,出现错误消息“ **o