我目前正在尝试使用Docker为我的新Django/Postgres项目。我正在开发一台Mac电脑,通常使用Postico快速连接到我的数据库。
我以前经常在这里联系:

我使用正式的码头文档来设置停靠-撰写。我现在有一个问题,我不能通过Postico连接到postgres db。在我看来,这个问题似乎是因为港口没有暴露出来。

version: '3'
services:
db:
image: postgres
web:
build: .
command: python3 manage.py runserver 0.0.0.0:8000
volumes:
- .:/code
ports:
- "8000:8000"
depends_on:
- db发布于 2018-09-29 11:24:40
只需将端口映射到主机,将其添加到撰写文件中的db服务:
ports:
- "5432:5432"还要确保在撰写文件中设置postgres密码变量,如下所示
environment:
POSTGRES_PASSWORD: example默认用户是postgres,您可以使用POSTGRES_USER变量更改它。
您可以在这里阅读有关图像使用的所有选项:/postgres/
发布于 2021-03-06 17:16:27
默认情况下,Compose为您的应用程序设置一个网络。
可以通过撰写文件中服务的名称访问每个容器。
在您的情况下,您不需要向主机公开端口,您的web应用程序才能访问它。您可以简单地使用db作为postgres的主机名(端口的5432 )来自运行在相同组合中的任何其他服务。
实际上,在docker撰写文档中提供了一个非常类似的示例:https://docs.docker.com/compose/networking/
https://stackoverflow.com/questions/52567272
复制相似问题