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

在Docker Compose中更改postgres containers服务器端口

田远
2023-03-14

我试图使用Docker Compose在远程服务器上部署第二个数据库容器。此postgresql服务器运行在端口5433上,而不是第一个postgresql容器使用的端口5432。

当我设置应用程序时,我得到以下错误输出:

web_1  | django.db.utils.OperationalError: could not connect to server: Connection refused
web_1  |    Is the server running on host "db" (172.17.0.2) and accepting
web_1  |    TCP/IP connections on port 5433?

我的docker组合文件是:

db:
  image: postgres:latest
  environment:
    POSTGRES_PASSWORD: route_admin
    POSTGRES_USER: route_admin
  expose:
    - "5433"
  ports:
    - "5433"
  volumes:
    - ./backups:/home/backups
   
web:
  build: .
  command:  bash -c "sleep 5 && python -u application/manage.py runserver 0.0.0.0:8081"
  volumes:
    - .:/code
  ports:
    - "81:8081"
  links:
    - db
  environment:
    - PYTHONUNBUFFERED=0

我觉得问题一定是服务器实例上的PostgreSQL L.conf文件将端口设置为5432,导致应用程序试图连接到它时出现错误。是否有一种简单的方法可以使用compose文件中的命令来更改端口,而不是用卷来替换文件?

我正在为这项工作使用官方的postgresql容器。

共有1个答案

巫研
2023-03-14

我假设postgres在容器中的端口5432上运行,并且您希望在主机5433上公开它。

此端口strophe:

ports:
    - "5433:5432"

将公开主机端口5433上的服务器。在此场景中,您可以删除现有的expose strophe。

如果您只想将服务公开给组合文件中声明的其他服务(而不是本地主机),只需使用expose strophe并将其指向已经在内部公开的端口5432。

请记住,EXPOSE指令实际上没有做任何事情(它对您来说更多的是一个提示)。端口5432将公开给compose文件中声明的其他服务,无论是否使用该指令。

 类似资料:
  • 问题内容: 我正在尝试使用Docker compose在远程服务器上部署第二个数据库容器。该postgresql服务器在端口5433上运行,而不是第一个postgresql容器使用的5432。 设置应用程序时,出现以下错误输出: 我的泊坞窗撰写文件是: 我觉得问题一定是服务器实例上的postgresql.conf文件将端口设置为5432导致我的应用尝试与其连接时导致错误。有没有一种简单的方法可以使

  • 问题内容: 我想在侦听器中指定可侦听的默认端口。是否有比在内部解析并插入配置的端口更容易的修复方法? 目标是运行时不必每次都指定地址和端口,而要从中获取参数。 问题答案: 使用以下命令创建一个bash脚本: 将其保存为runserver并与manage.py放在同一目录中 并运行为

  • 您好,我正在从db中获取日期,其中日期列的类型为“date”,然后将其拆分并串联成字符串存储在db中 当从本地环境执行程序时,它工作正常,时间存储为28-09-2021 15:34:42,当通过服务器执行程序时,它以12小时格式28-09-2021 03:34:42PM存储,这会产生问题并引发错误。如果您有任何关于如何解决此问题的想法,我们将不胜感激。

  • 我有数据库名称:PMKIT,前缀Table:PMKIT.TableName。我想重命名PMKIT。TableName到DBO.TableName。你能帮助我吗!

  • 问题内容: 所以一切正常 但是,如果已经创建了驱动程序,则无法安装代理。这是行不通的 也是如此。 为什么?不能理解。我做错了吗? 问题答案: 在Firefox中使用WebDriver时,使用配置文件是一次性的事情。驱动程序启动浏览器时,它将配置文件对象写入磁盘,然后启动浏览器可执行文件。此后,浏览器将没有任何机制可以读取对WebDriver配置文件对象的任何进一步的更改。要更改代理,必须在启动浏览

  • 问题内容: 我在本地计算机上使用。在我们的网络服务器上,我们有。我们的服务器是共享服务器。所以我想通过文件更改我们服务器上的php版本。有可能做到吗?如果是,该怎么办? 问题答案: 要切换到PHP 4.4: 要切换到PHP 5.0: 要切换到PHP 5.1: 要切换到PHP 5.2: 要切换到PHP 5.3,请执行以下操作: 要切换到PHP 5.4: 要切换到PHP 5.5: 要切换到PHP 5.