gpt4 book ai didi

postgresql - 如何将 Postgresql Docker 容器与另一个 Docker 容器连接

转载 作者:行者123 更新时间:2023-11-29 12:16:52 24 4
gpt4 key购买 nike

我想将 mysoft docker 容器连接到 postgresql docker 容器。但是我有一些错误:

ERROR: for mysoft_db_1  Cannot start service db: driver failed programming external connectivity on endpoint mysoft_db_1 (XXX): 
Error starting userland proxy: listen tcp 0.0.0.0:5432: bind: address already in use

ERROR: for db Cannot start service db: driver failed programming external connectivity on endpoint mysoft_db_1 (XXX):
Error starting userland proxy: listen tcp 0.0.0.0:5432: bind: address already in use

这是我的 docker-compose.yml

version: '2'
services:
mysoft:
image: mysoft/mysoft:1.2.3
ports:
- "80:8080"
environment:
- DATABASE_URL=postgres://mysoft:PASSWORD@db/mysoft?sslmode=disable
db:
image: postgresql
environment:
- POSTGRES_USER=mysoft
- POSTGRES_PASSWORD=PASSWORD
- POSTGRES_DB=mysoft
ports:
- 5432:5432

我想使用另一个已经运行的 docker pg 服务器来连接新软件,还有一个 pg docker 服务器,用于更多项目可能吗?

最佳答案

您应该添加 linksdocker-compose.yml 中定义 mysoft 服务。然后您的 db 服务将可以从 mysoft 容器访问。

之后您的服务定义将如下所示。

mysoft:
image: mysoft/mysoft:1.2.3
ports:
- "80:8080"
environment:
- DATABASE_URL=postgres://mysoft:PASSWORD@db/mysoft?sslmode=disable
links:
- db

现在关于绑定(bind)错误。您可能会收到它,因为您有一个在端口 5432 上运行的本地 postgresql,或者您已经有一个正在运行的 docker 容器,其中 5432 端口映射到本地机器。

ports:
- 5432:5432

它用于将端口映射到您的本地计算机。如果您不需要从中访问容器的数据库,只需将其删除即可。

I want use another, already running docker pg server to connect new soft, also one pg docker server, for more projects Is it possible?

是的,这是可能的。使用 external_links .

如果您选择此选项:

  1. docker-compose.yml 中删除 mysoft 服务定义中的 db 服务和 links >

  2. 将具有正确容器名称的 external_links 添加到 mysoft 服务定义中。

  3. 根据其中的容器名称和postgresql端口更新DATABASE_URL中的主机和端口。

关于postgresql - 如何将 Postgresql Docker 容器与另一个 Docker 容器连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48792479/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com