【问题标题】:Postgresql DB not getting connected in dockerPostgresql DB 未在 docker 中连接
【发布时间】:2017-06-27 10:01:21
【问题描述】:

我的 rails 应用程序正在 docker 中运行。我正在运行我的服务器并在主机“localhost”和端口 3000 上进行侦听。但是当我使用“http://localhost:3000/”访问浏览器时,出现以下错误-

PG::ConnectionBad at /

无法连接到服务器:连接超时 服务器是否在主机“db”(184.168.221.24)上运行并接受 端口 5432 上的 TCP/IP 连接?

我无法找到这个“184.168.221.24”IP 的来源。 谢谢。

【问题讨论】:

  • 您是否通过 compose 启动容器?这看起来像您有一个链接的 db 容器。容器在您机器上的虚拟网络上运行
  • 是的,我正在运行“sudo docker-compose up”来启动服务器。
  • 看来您的db 容器要么没有正常启动,要么不允许从您的应用容器连接。您能否验证您的 db 容器是否正在运行 (docker ps)。你在db 容器上使用了expose 端口5432 吗?

标签: ruby-on-rails postgresql docker


【解决方案1】:

试试这个

docker restart container-name

sudo service postgresql restart

这将重新启动您的 PostgreSQL,希望这对您有所帮助。

【讨论】:

  • 得到了这个 postgresql:无法识别的服务
  • 试试这个sudo yum install postgresql-server
  • 不,他想在撰写堆栈中运行它。不要安装在本地机器上
  • 嗨 Mayur,当我运行这个 'psql --version' 时,我得到了这个 'psql (Postgres-XC) 1.1 (based on PostgreSQL) 9.2.4'。这意味着我的机器上安装了 postgresql-server。对吗?
  • 重启docker-machine restart devboot2docker stopboot2docker start怎么样
【解决方案2】:

正如我在 cmets 中已经提到的,您的 db 容器似乎没有正确启动或不允许来自您的应用程序容器的连接。验证您的 db 容器是否正在运行 (docker ps)。此外,确保您将 db 容器上的 expose 端口 5432 连接到撰写堆栈中的其他容器。

【讨论】:

  • 数据库容器正在运行图像 - mdillon/postgis:9.6
  • 那么很有可能是5432端口没有暴露。您可以在撰写 yaml 中使用 expose: 5432 将其打开到链接的容器。 Docu
  • 这就是我在 docker-compose.yml 文件中的内容 - db: image: mdillon/postgis:9.6 ports: - '5433:5432'
  • 任何其他方式暴露:5432 ?
猜你喜欢
  • 2021-07-18
  • 1970-01-01
  • 1970-01-01
  • 2023-02-12
  • 2021-08-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-05
相关资源
最近更新 更多